我有一个像这样读取的 csv 文件:
with io.open(script, 'r', encoding='utf-8-sig') as csvfile:
entireFile = csv.reader(csvfile)
我想遍历“entireFile”并将特定列复制到新列表。我有另一个列表,我们称之为“wantedColumnsList”,其中包含我想要复制的列标题的名称:
wantedColumnsList = ["Column2", "Column5", "Column9"]
重申一下,我想遍历“entireFile”并将所有数据复制到一个新列表中,但只复制 wantedColumnsList 中概述的列中包含的数据。 我想这样做(只是为了提供一些上下文)的原因是我可以遍历新列表并搜索任何空值。如果我找到一个空值,我希望能够打印出包含该空值的列名。 本质上,我正在创建一个脚本,该脚本读取一个文件并检查某些列是否包含空值,而这些列不应该包含空值。 谢谢!
最佳答案
如果您对 pandas
持开放态度,您可以使用此代码过滤出所需的列:
import pandas as pd
df = pd.read_csv('your_file.csv', encoding='utf-8-sig')
wantedColumnsList = ["Column2", "Column5", "Column9"]
df = df[wantedColumnsList]
如果你想在之后将它转储到 csv
只需使用:
df.to_csv('your_new_file.csv', encoding='utf-8-sig')
编辑:
并查找带有 nan
的列:
df.columns[df.isnull().any()].tolist()
使用 nan
查找特定行:
df[df.isnull().any(axis=1)]
关于python - 在 Python 中创建一个列表,其中包含来自 csv 文件中特定列的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325578/