熊猫在没有标题的情况下阅读

use*_*827 192 python pandas

我如何读取.csv文件(没有标题),当我只想要一个列的子集(比如总共20列中的第4和第7列)时,使用pandas?我似乎无法做到usecols

EdC*_*ica 277

为了读取没有标题的csv,只有某些列,你需要传递params header=None以及usecols=[3,6]第4和第7列:

df = pd.read_csv(file_path, header=None, usecols=[3,6])
Run Code Online (Sandbox Code Playgroud)

查看文档


ch3*_*hau 44

以前的答案是好的和正确的,但在我看来,一个额外的names参数将使它完美,它应该是推荐的方式,特别是当csv没有headers.

使用usecols参数

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
Run Code Online (Sandbox Code Playgroud)

或用于names明确告诉人们header=None没有标题(无论如何两行都相同)

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)
Run Code Online (Sandbox Code Playgroud)

这样您就可以检索数据了

# with `names` parameter
df['colA']
df['colB'] 
Run Code Online (Sandbox Code Playgroud)

代替

# without `names` parameter
df[0]
df[1]
Run Code Online (Sandbox Code Playgroud)

说明

基于read_csv,当csv显式传递时,names则会表现得像header而不是None,因此可以0header=None存在时跳过.

  • 我真的不明白为什么文档中解释得如此不清楚。他们只在那里提到了一次 `header=None`,它是:“那么行为与 `header=None` 相同”。但这是什么行为?只是没有提到而已。我应该将其视为完全避免使用“header=None”并使用“names”吗? (2认同)

Ale*_*lex 9

确保为第4列和第7列指定pass header=None和add usecols=[3,6].