我目前正在尝试读取具有以下结构的 CSV:
samplecsv = """ 'column A', 'column b', 'column c',
'valueA', 'valueb', 'valuec,d',
'valueA', 'valueb', 'valuecd',
'valueA', 'valueb', 'valuecd',
'valueA', 'valueb', 'valuec,d'
"""
请注意,我没有将其作为字符串包含,但我将相同的数据存储在 .txt 文件中。
我希望 python 忽略 'valuec,d' 中的逗号进行分隔,以便稍后将其放在一列中。我发现你可以给出一个被忽略的 quotechar 作为参数,但我无法让它用单引号运行。我试过:
import pandas as pd
DF= pd.read_csv(r'Myfilepath, sep = ',', quotechar =''')
以及:
DF= pd.read_csv(r'Myfilepath, sep = ',', quotechar ='''')
我也尝试过:
DF= pd.read_csv(r'Myfilepath, sep = ',', quotechar ="'")
所有 3 个版本都给了我“SyntaxError: incomplete input”。我做错了什么?
标记为重复的问题仅解释了单引号和双引号之间的区别,但没有解释如何在 pd.read_csv 中排除它们。因此我仍在寻找答案。
我没有收到此数据的任何错误。不过,这些字段包含额外的空格,这需要
skipinitialspace
参数。代码如下:
import pandas as pd
samplecsv = """ 'column A', 'column b', 'column c',
'valueA', 'valueb', 'valuec,d',
'valueA', 'valueb', 'valuecd',
'valueA', 'valueb', 'valuecd',
'valueA', 'valueb', 'valuec,d'
"""
from io import StringIO
df=pd.read_csv(StringIO(csv), sep = ',', quotechar ="'",skipinitialspace=True)
df
产品
column A column b column c Unnamed: 3
0 valueA valueb valuec,d NaN
1 valueA valueb valuecd NaN
2 valueA valueb valuecd NaN
3 valueA valueb valuec,d NaN
最后一个空列适用于大多数行中的尾随
,
。可以使用 dropna
将其删除:
>>> df.dropna(axis=1,how='all')
column A column b column c
0 valueA valueb valuec,d
1 valueA valueb valuecd
2 valueA valueb valuecd
3 valueA valueb valuec,d