由于 usecols 的列和列表不同,因此会吐出错误
“ValueError”Usecols 与名称不匹配。
如果 csv 中存在列,我如何“usecol”?
csv样本:
df.csv
AB,CD,EF,GH
foo,20160101,a,1
foo,20160102,a,3
foo,20160103,a,5
Run Code Online (Sandbox Code Playgroud)
读取csv:
import pandas as pd
df = pd.read_csv('df.csv',
header=0,usecols=["AB", "CD", "IJ"])
Run Code Online (Sandbox Code Playgroud)
这就是我想得到的:
df
date AB CD
2016-01-01 a 1
2016-01-02 a 3
2016-01-03 a 5
Run Code Online (Sandbox Code Playgroud)
忽略“IJ”。
使用lambda
inusecols
跳过不在 中的列csv
:
import pandas as pd
from io import StringIO
txt = """AB,CD,EF,GH
foo,20160101,a,1
foo,20160102,a,3
foo,20160103,a,5"""
usecols = ['AB', 'CD', 'IJ']
df = pd.read_csv(StringIO(txt), usecols=lambda c: c in set(usecols))
print(df)
AB CD
0 foo 20160101
1 foo 20160102
2 foo 20160103
Run Code Online (Sandbox Code Playgroud)