首页 > 解决方案 > 如何根据空白列删除 CSV 文件中的行

问题描述

我有一个这种格式的 csv 文件,但是有数千行,所以我可以这样总结它

id,name,score1,score2,score3
1,,3.0,4.5,2.0
2,,,,
3,,4.5,3.2,4.1

我曾尝试使用 .dropna() 但这不起作用。

我想要的输出是

id,name,score1,score2,score3
1,,3.0,4.5,2.0
3,,4.5,3.2,4.1

我真正需要的是检查 score1 是否为空,因为如果 score1 为空,那么其余的分数也是空的。

我也试过这个,但它似乎没有做任何事情。

import pandas as pd

df = pd.read_csv('dataset.csv')

df.drop(df.index[(df["score1] == '')], axis=0,inplace=True)

df.to_csv('new.csv')

有人能帮忙吗?

标签: pythonpandasdataframecsv

解决方案


import pandas as pd


df = pd.DataFrame([[1,3.0,4.5,2.0],[2],[3,4.5,3.2,4.1]], columns=["id","score1","score2","score3"])

aux1 = df.dropna()
aux2 = df.dropna(axis='columns')
aux3 = df.dropna(axis='rows')

print('=== original ===')
print(df)
print()
print('=== mode 1 ===')
print(aux1)
print()
print('=== mode 2 ===')
print(aux2)
print()
print('=== mode 3 ===')
print(aux3)
print()
print('=== mode 4 ===')
print('drop original')
df.dropna(axis=1,inplace=True)
print(df)

推荐阅读