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
添加回答
举报