Python 按分隔符清除csv

Python 按分隔符清除csv,python,pandas,csv,data-cleaning,Python,Pandas,Csv,Data Cleaning,我有一个csv文件,其中所有列都在一行中,用引号括起来,用逗号分隔。这些列在一行中 csv中的行以逗号分隔,如果有2个逗号,则表示缺少值。我想用这些参数来分隔这些列。如果行中有引号,则引号中的逗号不应作为分隔符,因为这是地址 这是一个数据示例(它是一个csv,我将其转换为字典以向您展示一个示例) 到目前为止,我已经尝试过了,但有点卡住了: disc = pd.read_csv('/content/gdrive/My Drive/blank/blank.csv',delimiter='",')

我有一个csv文件,其中所有列都在一行中,用引号括起来,用逗号分隔。这些列在一行中

csv中的行以逗号分隔,如果有2个逗号,则表示缺少值。我想用这些参数来分隔这些列。如果行中有引号,则引号中的逗号不应作为分隔符,因为这是地址

这是一个数据示例(它是一个csv,我将其转换为字典以向您展示一个示例)

到目前为止,我已经尝试过了,但有点卡住了:

disc = pd.read_csv('/content/gdrive/My Drive/blank/blank.csv',delimiter='",')
csv示例:

我使用普通函数删除两端每行中的
,并将两个
转换为单个

这样我就可以得到CSV,我可以用
read\u CSV()


另一种方法:将其读取为CSV并另存为普通字符串

import csv

f1 = open('Sample - Sheet1.csv')
f2 = open('temp.csv', 'w')

reader = csv.reader(f1)
for row in reader:
    f2.write(row[0] + '\n')

f2.close()
f1.close()


df = pd.read_csv('temp.csv')

print(len(df.columns))
print(df)

是谁对你可怜的csv数据做的?这太可怕了?你能从源头上解决它吗?这看起来像是
,“
分离和
”““
引用字符串-但使其成为字典的部分完全没有意义。@PatrickArtner很遗憾,我无法理解问题中的某些内容,或者内置模块csv的默认行为已经在处理您的案例<代码>导入打开的csv('data.csv',换行符='')作为infle:reader=csv.reader(infle,delimiter=',',quotechar=')对于line-in reader:#对数据进行处理@Pagefault如果我使用“,”作为分隔符,它会将整个第一行读取为一列,而不是将每个项目分隔为一列。csv文件的问题是,每一行都以
开头和结尾。”
你能简单地对文件进行预处理,删除开头和结尾的字符吗?其余的字符应该很容易被csv阅读器读取。谢谢,这就像一个符咒,我可以问一下你为什么要删除两端的字符吗?它们是成对的,csv认为这是一个长字符串,所以它将其作为单列读取。在这个字符串中,CSV使用double
来说明它不是值的结束/开始,而是字符串中的普通字符。
f1 = open('Sample - Sheet1.csv')
f2 = open('temp.csv', 'w')
for row in f1:
    row = row.strip() # remove "\n"
    row = row[1:-1] # remove " on both ends
    row = row.replace('""', '"') # conver "" into "
    f2.write(row + '\n')
f2.close()
f1.close()

df = pd.read_csv('temp.csv')

print(len(df.columns))
print(df)
import csv

f1 = open('Sample - Sheet1.csv')
f2 = open('temp.csv', 'w')

reader = csv.reader(f1)
for row in reader:
    f2.write(row[0] + '\n')

f2.close()
f1.close()


df = pd.read_csv('temp.csv')

print(len(df.columns))
print(df)