簡體   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