使用pandas,如何读取没有标题的.csv文件的子集列(例如第4列和第7列)?我似乎无法使用
usecols
实现。header=None
和usecols=[3,6]
来读取第4列和第7列:df = pd.read_csv(file_path, header=None, usecols=[3,6])
请查看文档
之前的回答都是正确的,但在我看来,额外添加一个names
参数将使它更加完善,并且应该成为推荐的方式,特别是当csv没有headers
时。
usecols
和names
参数df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
或者使用header=None
来明确告诉人们csv
没有标题(不管怎样,这两行都是相同的)。
df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)
这样您就可以通过
检索到您的数据。# with `names` parameter
df['colA']
df['colB']
取代
# without `names` parameter
df[0]
df[1]
根据 read_csv 的说明,当显式传递 names
参数时,header
参数行为类似于 None
而不是 0
,所以当存在 names
参数时,可以跳过 header=None
参数。
请确保您指定传递header=None
并添加 usecols=[3,6]
用于第4和第7列。
columts = ['Day', 'PLMN', 'RNCname']
tempo = pd.read_csv("info.csv", sep=';', header=0, names=columts, index_col=False)
您还可以使用header=None
调用read_table()
(将文件的第一行读取为数据的第一行):
df = pd.read_table('test.tsv', sep=',', usecols=[3,6], header=None)
如果分隔符是\t
(如.tsv文件等),那么这个函数就会更有用,因为默认分隔符是\t
(不像read_csv
的默认分隔符是,
)。
header=None
,并且是这样说的:“然后行为与header=None
相同”。但是这种行为是什么?它根本没有被提到。我应该将其视为应该避免使用header=None
而改用names
吗? - Alexander Myasnikov