双曲Pandas资料

2024-04-29 06:59:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试读取一个.csv格式的大型数据集,该数据集将使用熊猫库自动更新。 问题是,在我的数据中,第一行是一个没有双引号的字符串,其他列是带有双引号的字符串。我无法手动调整.csv文件。

简化的数据集如下所示

  1. A、 “B”、“C”、“D”
  2. “树”,“房子”,“门”
  3. 组件b,“卡车”,“红色”,“蓝色”

我需要将数据存储为不带引号的单独列,如下所示:

  1. A、B、C、D
  2. 补树屋门
  3. 公司卡车红蓝

我试着用

import pandas as pd
df_csv = pd.read(path_to_file,delimiter=',')

它将完整的头作为最后一列的单个变量

  1. A、 “B”、“C”、“D”
  2. 比较“树”“房子”“门”
  3. “卡车”“红色”“蓝色”

最接近我需要的结果是

df_csv = pd.read(path_to_file,delimiter=',',quoting=3)

它正确地识别每一列,但添加了一堆额外的双引号。

  1. “A”“B”“C”“D”
  2. “比较树”“房子”“门”
  3. “组件b”“卡车”“红色”“蓝色”

将quoting设置为0到2之间的值只会将整行作为一列读取。

有人知道我在读取.csv文件时如何删除所有引号吗?


Tags: 文件csv数据path字符串dfread组件
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)

考虑一下data.csv文件中的数据

$> more data.csv 
A,"B","C","D"
comp_a,"tree","house","door"
comp_b,"truck","red","blue"

或许新的pandas版本可以从自身解决您的问题,例如在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('"', '')

您可以在read_csv之后替换",并使用df_csv.to_csv('fname')再次保存该文件

df_csv.apply(lambda x:x.str.replace('"', ""))

相关问题 更多 >