import pandas as pd, numpy as np
df = pd.read_excel('3-7.xlsx')
arr = np.array(df['出生日期'])
arr[np.isnan(arr)]= 999
arr.astype('int')
df['出生日期']=arr
df
學習達人
|
郭小坤
展開
|
學習達人
|
wf543166376
展開
|
學習達人
|
行而不輟
展開
import pandas as pd
import numpy as np
df = pd.read_excel('test.xlsx')
for c in df.columns.tolist():
arr=np.array(df[c])
np.isnan(arr)
老師您好,為啥我這段代碼會報錯“TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''” |
學習達人
|
xudodo910
展開
最后一步為什么9999變成了int范圍的最小的數(shù)?就算是將9999改成張三的29932也是這樣。 lei2373710
展開
@ T-8fdmt1s3z 存在缺失值的時候,轉(zhuǎn)化數(shù)據(jù)類型會有問題,應當在補全缺失值之后再轉(zhuǎn)換數(shù)據(jù)類型 T-8fdmt1s3z
展開
@ xudodo910 import pandas as pd,numpy as np
df=pd.read_excel('3-7.xlsx')
arr=np.array(df['出生日期'])
arr[np.isnan(arr)]=9999
df['出生日期']=arr.astype('int')
df T-8fdmt1s3z
展開
@ xudodo910 arr=np.array(df['出生日期']) → array([29932., nan, 32055., 33080., nan, 30931.])
arr=np.array(df['出生日期'],dtype='int') → array([29932, -2147483648, 32055,33080,-2147483648,30931])
nan 由dtype='int' 對應的值為: -2147483648 |
承擔因您的行為而導致的法律責任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。