我将以下csv文件转换为DataFrame:
apartment,floor,gasbill,internetbill,powerbill
401,4,120,nan,340
409,4,190,50,140
410,4,155,45,180
我希望能够迭代每列,如果Internetbill列中的单元格的值不是数字,请删除整行。因此,在此示例中,将从DataFrame中删除“ 401,4,120,nan,340”行。
我以为这样的事情会起作用,但是我无济于事,被困住了
df.drop[df['internetbill'] == "nan"]
答案 0 :(得分:1)
如果您使用的是pd.read_csv
,那么该nan
将作为np.nan
导入。如果是这样,那么您需要dropna
df.dropna(subset=['internetbill'])
apartment floor gasbill internetbill powerbill
1 409 4 190 50.0 140
2 410 4 155 45.0 180
如果出于任何原因这些都是字符串,则可以执行以下两项操作之一:
replace
df.replace({'internetbill': {'nan': np.nan}}).dropna(subset=['internetbill'])
to_numeric
df.assign(
internetbill=pd.to_numeric(df['internetbill'], errors='coerce')
).dropna(subset=['internetbill'])