我正在尝试读取.csv格式的大型数据集,该数据集会使用pandas库自动更新。 问题在于,在我的数据中,第一行是不带双引号的字符串,而其他列是带双引号的字符串。我无法手动调整.csv文件。
简化的数据集看起来像这样
我需要将数据存储为单独的列,且不带引号,例如:
我尝试使用
import pandas as pd
df_csv = pd.read(path_to_file,delimiter=',')
这为我提供了完整的标题,作为最后一列的单个变量
与我需要的结果最接近的结果是使用以下内容
df_csv = pd.read(path_to_file,delimiter=',',quoting=3)
可以正确识别每列,但会添加一堆额外的双引号。
将引号设置为0到2之间的值只会将整行读为单列。
有人知道我在读取.csv文件时如何删除所有引号吗?
答案 0 :(得分:3)
只需使用pd.read_csv()
加载数据,然后使用.replace('"','', regex=True)
一行将是:
df = pd.read_csv(filename, sep=',').replace('"','', regex=True)
设置列名:
df.columns = df.iloc[0]
并删除第0行:
df = df.drop(index=0).reset_index(drop=True)
答案 1 :(得分:1)
您可以在"
之后替换read_csv
,然后使用df_csv.to_csv('fname')
df_csv.apply(lambda x:x.str.replace('"', ""))
答案 2 :(得分:0)
在文件data.csv之类的文件中考虑数据
$> more data.csv
A,"B","C","D"
comp_a,"tree","house","door"
comp_b,"truck","red","blue"
也许较新的熊猫版本可以自己解决问题,例如在pd.__version__ = '0.23.1'
In [1]: import pandas as pd
In [2]: pd.read_csv('data.csv')
Out[2]:
A B C D
0 comp_a tree house door
1 comp_b truck red blue
否则,对读数进行替换
pd.read_csv('data.csv').replace('"', '')