2016-04-27 42 views
3

我有以下示例.csv文件:熊猫:从CSV文件中获取具体列

str_header int_header 
string_a  1 
string_b  2 
string_c  3 

根据互联网上的解决方案,此代码:

import pandas as pd 
data = pd.read_csv("z.csv", names=['int_header']) 
print(data['int_header']) 

应该只读int_header列到data 。但如上所述打印时,data实际上包含所有文件列。我正在使用Python的Anaconda发行版。怎么了?

回答

5

试试这个:

data = pd.read_csv("z.csv", usecols=['int_header']) 

假设您的CSV文件,作为分隔符

说明:

Docs:

名称:阵列状,默认无

要使用的列名称的列表。如果文件 不包含标题行,那么你应该明确地传递标题=无

usecols:阵列状,默认无

返回列的一个子集。结果>以更快的解析时间和更低的内存使用量。

文档有点混乱。

names - 用于命名(给列名称),特别是如果你没有标题行或想忽略/跳过它。

usecols - 用于选择只是“有趣”列

+0

的文档我感到困惑: 名称:阵列状,默认无列名的 列表中使用。如果文件不包含标题行,那么你应该明确地传递标题=无 所以我认为这是一个使用... – student1

+1

“名称”参数是为熊猫使用的内部名称,而不是csv文件中的实际列。 –

+1

@ student1,我已经给我的答案添加了一些解释 – MaxU