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
![]() ![]() 學(xué)習(xí)達(dá)人
|
郭小坤
展開
|
![]() ![]() 學(xué)習(xí)達(dá)人
|
wf543166376
展開
|
![]() ![]() 學(xué)習(xí)達(dá)人
|
行而不輟
展開
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)
老師您好,為啥我這段代碼會(huì)報(bào)錯(cuò)“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''” |
![]() ![]() 學(xué)習(xí)達(dá)人
|
xudodo910
展開
最后一步為什么9999變成了int范圍的最小的數(shù)?就算是將9999改成張三的29932也是這樣。 ![]() lei2373710
展開
@ T-8fdmt1s3z 存在缺失值的時(shí)候,轉(zhuǎn)化數(shù)據(jù)類型會(huì)有問題,應(yīng)當(dāng)在補(bǔ)全缺失值之后再轉(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' 對(duì)應(yīng)的值為: -2147483648 |
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。