繁体   English   中英

pandas.read_csv() 中的分隔符不分开

[英]The separator in pandas.read_csv() does not separate

下午好!
我有一个这样的 .csv 文件(使用记事本打开时):

"2,"" Lorem ipsum dolor sit amet, consectetur adipiscing elit.
"""
"2,"" Proin a tortor leo. Morbi dictum laoreet nulla sit amet luctus. Donec euismod egestas velit, eget consequat ex porttitor vitae. Sed venenatis ornare enim sed rutrum. Aenean congue purus vitae congue rutrum. Ut ex felis, viverra imperdiet est vel, hendrerit luctus ligula.
"""
"2,"" estibulum consequat lorem enim, ut semper erat fringilla id.
"""
"2,"" Praesent a lobortis justo. Cras in sapien enim.
"""
...

我用它从文件中获取数据:

train = pd.read_csv('yelp_review_polarity_csv/train.csv', 
                    header=None, 
                    names=['Class', 'Review'],
                    encoding="cp1251",
                    sep=",")

这是我得到的: 图片 第二列填充了“Null”值。 我需要它看起来像这样:

Class     Review
2         Lorem ipsum dolor sit amet...

我的意思是数据应该用“,”分隔符分成两列。 如何解决?
注意:我使用的是 cp1251 编码,因此其他语言的某些字符没有问题。

您可以遍历这些行并尝试parts = s.split(',""', 1)将输入拆分为 2 个值,并从 Review 列值中去除虚假的 ""。

假设“CSV”文件中每一行的格式相同,那么您可以像这样解析文件。

import pandas as pd

val1 = []
val2 = []
with open("yelp_review_polarity_csv/train.csv") as fin:
    for s in fin:
        s = s.strip()
        if s == '"""':
            # skip lines with """
            continue
        if s[0] == '"':
            # change "2 to just '2'
            s = s[1:]
        parts = s.split(',""', 1)
        val1.append(parts[0])
        val2.append(parts[1])

# construct a data frame from the 2 lists
df = pd.DataFrame({'Class': val1, 'Review': val2})
print(df)

输出:

  Class                                             Review
0     2   Lorem ipsum dolor sit amet, consectetur adipi...
1     2   Proin a tortor leo. Morbi dictum laoreet null...
2     2   estibulum consequat lorem enim, ut semper era...
3     2    Praesent a lobortis justo. Cras in sapien enim.

如果格式不同,则需要相应地调整代码。

或者,您可以将文本文件的格式从
旧: "2,"" Lorem ipsum dolor sit amet, consectetur adipiscing elit. """
新: 2,"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
然后pd.read_csv()将正确解析输入文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM