我有一个csv文件,有1000列。我只需要阅读前100列。我为此编写了这个程序:
import pandas as pd
list = []
for i in range (1, 100):
list.append(i)
df = pd.read_csv('piwik_37_2016-07-08.csv',dtype = "unicode")
df = df[df.columns.isin(list)]
df.to_csv('abc.csv', index = False)
但我收到错误:ValueError:项目错误长度907而不是2000.无法弄清楚我哪里出错了
答案 0 :(得分:1)
你的代码有很多奇怪的地方。例如,没有理由迭代范围对象并更新列表以获取数字列表。只需使用list(range(1,100))
即可。
但是,如果您只需要csv中的前100列,那么您可以使用内置功能:
df = pd.read_csv('piwik_37_2016-07-08.csv',dtype = "unicode", usecols = list(range(100)))
答案 1 :(得分:0)
尽管它被否决了,但仍然是代码中的一个小小的修正。
import pandas as pd
l = list(range(0,100))
df = pd.read_csv('piwik_37_2016-07-08.csv',dtype = "unicode")
df = df.loc[:,df.columns.isin(l)]
df.to_csv('abc.csv', index = False)