【问题标题】:Python Pandas: How to remove list brackets from data frame when exporting to CSV when using a dict?Python Pandas:使用dict导出到CSV时如何从数据框中删除列表括号?
【发布时间】:2021-10-26 03:07:54
【问题描述】:

我正在尝试将转换后的字典保存到数据帧到 csv,如下所示:

我正在使用树莓派 4

data = {'col_1': [1], 'col_2': [2]}
pd.DataFrame.from_dict(data).to_csv("file.csv")

但是我的 dict 有标量值,因此我将它们转换为一个列表,以便它们有一个索引。这样做会产生以下 csv 输出

col_1, col_2
[1], [2]

但我想要

col_1, col_2
1, 2

如何从 csv 中删除 '[' ']'?

一种解决方案是在 excel 中使用文件/替换命令,但我想在 python 中执行此操作。

【问题讨论】:

  • @JoranBeasley 我试过这个并得到相同的结果
  • 在这两种情况下,我得到你的预期输出实际上似乎并不关心 from_dict 与否......我没有得到你描述的输出我得到你的预期输出
  • 亲爱的朋友,请检查您的 pandas/python 版本,根据您的输入,它应该会给出您期望的结果。我试了一下,确认了。
  • 我使用的是树莓派 4,这有关系吗?使用标量值时出现异常,因此我将值放在括号 [1] [2] 中,但这些括号保留在输出的 csv 文件中。
  • 您使用的硬件并不重要,但 Pandas 的版本肯定很重要。你用的是什么版本? (输入pip show pandasprint(pd.__version__)

标签: python pandas list


【解决方案1】:

你正在做的已经在工作了,没有括号:

import io
text = io.StringIO()

data = {'col_1': [1], 'col_2': [2]}
pd.DataFrame.from_dict(data).to_csv(text)

print(text.getvalue())

输出:

,col_1,col_2
0,1,2

【讨论】:

    【解决方案2】:

    试试这个

    data = {'col_1': [1], 'col_2': [2]}
    
    keys = str(list(data.keys()))
    values = str(list(data.values()))
    
    ch = "[]'"
    for char in ch:
        keys = keys.replace(char,'')
        values = values.replace(char,'')
    
    with open('file.csv', 'w') as f:
        f.write(keys+'\n')
        f.write(values)
    

    输出:

    col_1, col_2
    1, 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2019-12-09
      • 2022-11-16
      • 2017-02-17
      • 1970-01-01
      • 2022-12-23
      • 2014-01-20
      相关资源
      最近更新 更多