Pandas在不带标题的表中读取

2024-03-29 10:20:01 发布

您现在位置:Python中文网/ 问答频道 /正文

如何读取.csv文件(没有标题)以及当我只需要列的一个子集(比如总共20列中的第4列和第7列)时,使用pandas?我好像做不到usecols


Tags: 文件csv标题pandas子集usecols
3条回答

以前的答案是正确的,但是在我看来,一个额外的names参数将使它更加完美,而且应该是推荐的方法,特别是当csv没有headers时。

解决方案

使用usecolsnames参数

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

为了读取没有标题的csv,并且只对某些列,您需要为第4列和第7列传递参数header=Noneusecols=[3,6]

df = pd.read_csv(file_path, header=None, usecols=[3,6])

docs

确保指定passheader=None,并为第4列和第7列添加usecols=[3,6]

相关问题 更多 >