【发布时间】:2019-09-10 00:35:56
【问题描述】:
我想使用 Pandas 的 read_csv 函数读取一个 csv 文件,该文件在标题中的行中有更多分隔符。 Pandas 认为第一列是多索引的。 “NAME”列可以有任意数量的分隔符,受影响的列可以是任何一个(我们不知道哪一个受到影响),甚至不止一个。
我尝试调整 read_csv 的关键字参数,但没有成功。我正在使用 Python 3.7.0 和 Pandas 0.25.0。但是,Excel 可以正确读取文件。
import pandas
with open('test.csv', mode='w') as csv_file:
csv_file.write('A,NAME,B\n')
csv_file.write('a, Peter, Parker, b\n')
df = pandas.read_csv('test.csv', header=0, delimiter=',')
print(df)
预期输出:
A NAME B
0 a Peter, Parker b
实际输出:
A NAME B
a Peter Parker b
其他例子:
import pandas
with open('test.csv', mode='w') as csv_file:
csv_file.write('A,NAME,B,PLACE\n')
csv_file.write('a, Peter, Parker, b, Queens, New York City\n')
df = pandas.read_csv('test.csv', header=0, delimiter=',')
print(df)
预期输出:
A NAME B PLACE
0 a Peter, Parker b Queens, New York City
实际输出:
A NAME B PLACE
a Peter Parker b Queens New York City
【问题讨论】:
-
每个
NAME都有这种格式吗? -
没有。每行中可以存在任意数量的分隔符,但所有行都相同。
-
好的,有很多方法可以解决这个问题,但这样构造数据是没有意义的。谁制作这样的csv文件?如果您想要一个合适的解决方案,我建议您提供更多涵盖所有可能性的数据。
标签: python pandas csv dataframe