df.dropna()不删除带有na的行

2024-10-03 15:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从dataframe中删除列“colImp”没有值的所有行,并将其转换为int类型。这是一个非常简单的代码,但我仍然可以看到'南'后,做dropna。下面是代码

df[colImp] = df[colImp].astype(str).str.strip().replace('', np.nan).replace('\.0', '', regex=True)
df = df.dropna(axis = 0, subset=[colImp])
df[colImp] = df[colImp].astype(int)

第三步给出错误“ValueError:invalid literal for int(),以10为底:‘nan’”。当我检查时,我可以在数据框中看到nan。有人能帮我解决那边的问题吗


Tags: 代码true类型dataframedfnpnanreplace
1条回答
网友
1楼 · 发布于 2024-10-03 15:21:34

像这样的工作:


import pandas as pd

data = {'colImp':[2,'',2.7,'5123123']}

df = pd.DataFrame(data)
df['colImp'] = pd.to_numeric(df['colImp'], errors='coerce')
df = df.dropna(subset=['colImp'], axis=0)
df['colImp'] = df['colImp'].astype(int)

print(df)

    colImp
0        2
2        2
3  5123123

相关问题 更多 >