用熊猫解析csv,结果是错误的。熊猫版本是0.24.2

时间:2019-10-16 14:25:59

标签: python pandas dataframe

我想解析一个没有标题和定界符('\ t')的csv,结果是错误的。一行的所有值都将被识别为第一个字段,其他字段为Nan

csv_df=pd.read_csv(
    "./123",
    sep="\t",
    names=["month", "number", "age", "name", "column1"],
    quotechar='"',
    doublequote=True,
    skip_blank_lines=True,
    encoding="utf-8"
)     
print csv_df
the csv values is 

1  'Pete Houston'  'Software Engineer'  92

2     'John Wick'           'Assassin'  95

3   'Bruce Wayne'             'Batman'  99

4    'Clark Kent'           'Superman'  95

the parse result is 

                                          month number age  name
0  1  'Pete Houston'  'Software Engineer'  92     NaN  NaN   NaN

1  2     'John Wick'           'Assassin'  95     NaN  NaN   NaN

2  3   'Bruce Wayne'             'Batman'  99     NaN  NaN   NaN

3  4    'Clark Kent'           'Superman'  95     NaN  NaN   NaN

2 个答案:

答案 0 :(得分:2)

以下代码适用于您的csv示例:

pd.read_csv("filename.csv", sep="\s+", quotechar="'", header=None,
    names=["a", "b", "c", "d"])

最好使用"\t"作为分隔符,而不要使用"\s+"作为分隔符。此外,您的报价参数也一团糟。

答案 1 :(得分:0)

因为您的csv文件名称之间不包含/ t(制表符)。

我只是用制表符替换了每一行中的空格,然后运行了您的代码,得到了以下结果:

=OR(COUNTIF($A$2:$A$6000;A2)>0;COUNTIF($B$2:$B$6000;A2)>0;COUNTIF($C$2:$C$6000;A2)>0;COUNTIF($D$2:$D$6000;A2)>0;COUNTIF($e$2:$e$6000;A2)>0)
相关问题