python - 如何根据空白列删除 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')
有人能帮忙吗?
解决方案
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)
推荐阅读
- angular6 - 通过点击事件上的选择器将数据从父级传递给子级
- java - 初始化复杂过滤器时出错。从 Kotlin 运行 ffmpeg 时出现无效参数错误
- node.js - 如何让函数在 Node Js 和 MySQL 中同时退出触发?
- elixir - 如何解析子字段以便将可选参数添加到 HTTP 查询?
- https - Kubernetes https服务暴露
- c# - 在 .NET Core 应用程序中运行 Polly 策略时,它在捕获异常后挂起
- c# - 给用户一个角色 DSharpPlus
- javascript - 如何删除移动键盘单词建议插入的自动空格?
- c++ - 更新数组列表时遇到问题
- c++ - WebktiGtk 未加载 .so 扩展名