读取不同长度的CSV文件

  • 本文关键字:CSV 文件 读取 python csv
  • 更新时间 :
  • 英文 :


我正在尝试从tsv文件中读取数据,但文件的格式是

nm0007219   Donald Cook tt0042819
nm0457839   John Kitzmiller tt0045018   tt0042692
nm0777743   Karl Schwetter  tt0043483   tt0049422   tt0044322   tt0047989

我得到错误:

pandas.errors。ParserError:标记数据错误。C错误:预计第2行有3个字段,看到了5我当前的代码看起来像这样

TSV_file = pd.read_csv(filename, sep='t', header=None)

最终我的目标是找到数据集中边的数量

可以这样定义列标题:

import pandas as pd
df_tsv = pd.read_csv('input.tsv', sep='t', header=None, names=['nm', 'Name', *(f'tt{i:02}' for i in range(1, 6))])
print(df_tsv)

这将给你一个数据帧:

nm             Name       tt01       tt02       tt03       tt04  tt05
0  nm0007219      Donald Cook  tt0042819        NaN        NaN        NaN   NaN
1  nm0457839  John Kitzmiller  tt0045018  tt0042692        NaN        NaN   NaN
2  nm0777743   Karl Schwetter  tt0043483  tt0049422  tt0044322  tt0047989   NaN

您可以将范围设置为每行所需的tt....条目的最大可能数量。或者将其设置为较大的数字,然后删除所有为空的列:

df_tsv = df_tsv.dropna(axis=1, how='all')   # remove empty columns