【问题标题】:Pandas read_csv how to deal with sep character in parenthesesPandas read_csv 如何处理括号中的 sep 字符
【发布时间】:2017-02-22 15:19:16
【问题描述】:

所以我有这样的原始文件,大约有 20k 列,类似于:

number|colour|(a|1)|animal
1|green|x|dog
2|blue|y|cat
3|red|z|owl 

当我使用 read_csv('raw.csv',sep='|') 时,这会创建一个带有额外列的数据框,因为 (a|1) 列被拆分。

我尝试使用 quotechar 参数,但这只能取一个值。任何帮助将不胜感激

【问题讨论】:

  • This 可能会有所帮助。
  • 您的问题中的数据非常特别是pd.read_csv('raw.csv',sep="(?<!a)\|(?!1)", engine='python')。但我认为您的实际数据可能更复杂。

标签: python pandas dataframe delimiter


【解决方案1】:

对于您提供的示例数据,额外的分隔符仅出现在标题行中。因此,您可以使用 names 关键字提供自己的列名,然后告诉 Pandas 跳过标题行,如下所示:

import pandas as pd

df = pd.read_csv('raw.csv', sep='|', skiprows=1, names=["number", "colour", "(a|1)", "animal"])
print df

这会给你:

   number colour (a|1) animal
0       1  green     x    dog
1       2   blue     y    cat
2       3    red     z   owl

【讨论】:

    猜你喜欢
    • 2020-10-10
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2017-02-10
    • 2018-07-12
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多