我有一个包含数百列的csv文件,每一列都有长名称。有没有一种方法可以按编号只读取指定的列,例如列号2至5和列号50至71。我知道我可以使用'usecols'参数按列名读取指定的列,但是我可以指定要读取的列号得到所需的列?
答案 0 :(得分:2)
如果我们已经知道要读哪个column
yourdf = pd.read_csv('your file', usecols =[2,3,4,5], header = None)
答案 1 :(得分:1)
您可以用熊猫阅读整个csv以避免混淆:
df = pd.read_csv(filename)
然后使用iloc
获取特定列,如下所示:
df.iloc[:, 2:6] # This will give you all rows for columns 2 to 5
或,如果要在从csv读取时直接进行过滤
来自pd.read_csv
文档:
返回列的子集。如果是类列表,则所有元素必须是位置(即文档列中的整数索引)或字符串,这些字符串与用户提供的名称或从文档标题行推断出的列名称相对应。例如,有效的类似列表的usecols参数将为[0,1,2]或['foo','bar','baz']。
您可以将usecols
与索引(数字)或字符串一起使用。