2 回答

TA貢獻1155條經驗 獲得超0個贊
將值轉換為數值,然后刪除錯誤值:
df['Q53'] = pd.to_numeric(df['Q53'], errors='coerce')
df = df.dropna(subset=['Q53'])
print (df)
Q53
6 2.0
8 10.0
10 50.0
14 8.0
16 2.0
17 0.0
18 1.0
19 1.0
20 5.0
25 0.0
26 8.0
編輯:我建議不要使用eval,這里是提取數字x之間的解決方案,轉換為浮點數和多個之間。
\d+然后用正則表達式中的模式提取并轉換為數字的所有數字替換缺失值。
最后通過以下方式刪除缺失值DataFrame.dropna:
dfx = df['Q53'].astype(str).str.extract('(\d+)x(\d+)').astype(float).prod(axis=1, min_count=1)
num = df['Q53'].astype(str).str.extract('(\d+)', expand=False)
df['Q53'] = dfx.fillna(pd.to_numeric(num, errors='coerce'))
df = df.dropna(subset=['Q53'])
print (df)
Q53
6 2.0
8 10.0
10 50.0
14 8.0
16 2.0
17 0.0
18 1.0
19 1.0
20 5.0
21 21.0
23 8.0
25 0.0
26 8.0
添加回答
舉報