熊猫在没有标题的表中读取(pd.read csv no header)

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

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

534

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

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

以前的答案是好的和正确的,但是在我看来,一个额外的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]

Explain

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

15

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

2

默认行为是推断列名:如果没有传递名称,则行为与 header = 0 相同,并且列名从文件的第一行推断,如果列名被显式传递,则行为与 header = None 的现有位置相同。

namesarray-like,可选的要使用的列名称列表。如果文件包含标题行,则应显式传递 header = 0 以覆盖列名称。不允许此列表中的重复项。

columts = ['Day', 'PLMN', 'RNCname']
tempo = pd.read_csv("info.csv", sep=';', header=0, names=columts, index_col=False)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(903)
C#音频-如何时间拉伸(不同的节奏 相同的音高)
上一篇
sc的替代方法是什么:SitecoreMVC中的EditFrame
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(15条)