read_csv(),带有混乱的引号

mzsu5hc0  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(156)

我有一个CSV文件,我想读到Pandasdf,但遇到了一些麻烦。
CSV文件(文件.csv)的结构如下:

header1, header2, header3
"abc, \" hello \" ", 0, "aaa"
"abc, \", 0, "aaa"

我需要以下输出:

header1, header2, header3
"abc, hello", 0, aaa
abc, 0, aaa

如果应用pd.read_csv("file.csv", header=None, escapechar = "\\"),则会得到以下输出:

header1   header2  header3
0  abc, " hello "        0.0    "aaa"
1   abc ", 0, aaa"       NaN      NaN

我其实不关心特殊字符,逗号等,我只希望正确的值在正确的列如图所示。

hsgswve4

hsgswve41#

我实际上不关心特殊字符、逗号等。我只希望正确的值位于正确的列中,如图所示。

下面是pandas.read_csv的一个 * 命题 *:

from io import StringIO

s = """header1, header2, header3
"abc, \" hello \" ", 0, "aaa"
"abc, \", 0, "aaa"""
​
df = (pd.read_csv(StringIO(s)) # <- put here your .csv-pathfile
          .astype(str) # <- to cast all the cols as str for cleaning
          .replace({'[",]*': "", "\s+": " ", "\s*$": ""}, regex=True)
          .rename(columns=str.strip)
          .infer_objects()
     )

输出:

print(df)

     header1 header2 header3
0  abc hello       0     aaa
1        abc       0     aaa

相关问题