2024-03-29 10:20:01 发布
网友
如何读取.csv文件(没有标题)以及当我只需要列的一个子集(比如总共20列中的第4列和第7列)时,使用pandas?我好像做不到usecols
usecols
以前的答案是正确的,但是在我看来,一个额外的names参数将使它更加完美,而且应该是推荐的方法,特别是当csv没有headers时。
names
headers
df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
或者使用header=None显式地告诉人们csv没有标题(不管怎样,这两行都是相同的)
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
0
为了读取没有标题的csv,并且只对某些列,您需要为第4列和第7列传递参数header=None和usecols=[3,6]:
usecols=[3,6]
df = pd.read_csv(file_path, header=None, usecols=[3,6])
见docs
确保指定passheader=None,并为第4列和第7列添加usecols=[3,6]。
以前的答案是正确的,但是在我看来,一个额外的
names
参数将使它更加完美,而且应该是推荐的方法,特别是当csv没有headers
时。解决方案
使用
usecols
和names
参数附加读数
或者使用
header=None
显式地告诉人们csv
没有标题(不管怎样,这两行都是相同的)这样你就可以通过
而不是
解释
基于read_csv,当
names
被显式传递时,那么header
的行为将类似于None
,而不是0
,因此当names
存在时可以跳过header=None
。为了读取没有标题的csv,并且只对某些列,您需要为第4列和第7列传递参数
header=None
和usecols=[3,6]
:见docs
确保指定pass
header=None
,并为第4列和第7列添加usecols=[3,6]
。相关问题 更多 >
编程相关推荐