python - 努力创建数据帧,ParserError : Error tokenizing data. C 错误 : Expected 12 fields in line 15, 看到 16

标签 python pandas dataframe

我正在尝试创建一个在文本文件中读取的数据框。我已执行以下操作:

result = pd.read_csv("EconData.txt", sep="\s+", header=None)

但我不断收到:

'Error tokenizing data. C error: Expected 12 fields in line 15, saw 16'

我知道这可能是因为某些行可能包含额外的列,而没有为这些值创建实际的列。但是,我需要合并从 5 开始的所有列,因为这是一个长字符串的一部分,由于我使用的分隔符,该字符串似乎被分隔开。

下面是我的文本文件的布局示例。如果我想在日期、时间、缩写和消息之间进行拆分,那么最好的方法是什么。

16/10/2018, 20:00 - MP: The walkie talkie app

16/10/2018, 20:00 - MP: Dobby remembers

最佳答案

抱歉,我首先误解了你的问题。我以为你正在解析文本。

如果您想导入每行末尾有一个文本字段的 csv,该文本字段可能包含分隔符,但未正确引用,您可以按如下方式操作:

  1. 将文件加载到一个文本列
  2. 拆分所需的列数,忽略最后一列中的分隔符

您可以按如下方式执行此操作:

df= pd.read_csv(your_file_name, sep='\n', names=['text'])
# now split the first 5 columns
df_split= df['text'].str.split('\s+', n=5, expand=True)

如果您的数据框包含列名称,您可以像这样恢复它们

df_split.columns= df_split.iloc[0].to_list()
df_split.drop(df.index[0], inplace=True)

唯一的缺点是,这样您的列都将是对象类型。因此,您要么需要自己将列转换为所需的类型,要么如果您想使用 pandas 的自动类型检测,您也可以将文件写回文件(或者 io.StringIO 的实例,如果它不大) )并从 pandas 中重读它。 Pandas 会通过自动添加引号来处理分隔符,因此当您重新阅读时,不会再遇到同样的问题。

测试:

raw="""col1 col2 col3 col4 col5 col6
1 2 3 4 5 6 7 8 9
a b c d
A B C D E F G H I J"""
df= pd.read_csv(io.StringIO(raw), sep='\n', names=['text'])
# now split the first 5 columns
df_split= df['text'].str.split('\s+', n=5, expand=True)
df_split.columns= df_split.iloc[0].to_list()
df_split.drop(df.index[0], inplace=True)

Out[373]: 
  col1 col2 col3 col4  col5       col6
1    1    2    3    4     5    6 7 8 9
2    a    b    c    d  None       None
3    A    B    C    D     E  F G H I J

关于python - 努力创建数据帧,ParserError : Error tokenizing data. C 错误 : Expected 12 fields in line 15, 看到 16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57909997/

相关文章:

python - 将 Excel 文件的第 n 行到 n+x 行加载到 python 中的数据框中,其中 n 和 x 是预定义的

r - "..1"正文中的 "[[.data.frame"

python - 将 Python 列表组合在一起以获得公共(public)元素

python - 如何让 Django 的 Markdown 过滤器将回车转换为 <br/>?

python - 如何在 python 中按年份分离 pandas 数据框?

python - Pandas groupby 和文件写入问题

python - 计算Python中的单词数

python - 当使用 -O 优化时,ctypes 返回错误值

python - 解压特定索引

R 在数据框中生成非重复对,避免相同的组成员