【问题标题】:Removing brackets from a DataFrame column when exporting to CSV导出为 CSV 时从 DataFrame 列中删除括号
【发布时间】:2019-12-09 09:15:28
【问题描述】:

我有一列的值如下:

columnA
[12,4352,545]
[123123,5436,665]
[234,646,5747]

当我将包含此列的 DataFrame 写入 CSV 时,我想删除列中每个数组周围的括号。我试过str.replace 和str.strip,但是大括号永远不会被移除。我也尝试将它们全部转换为元组,然后删除括号,但无济于事。

【问题讨论】:

  • 您的列是字符串还是列表值?
  • @QuangHoang 列中的每个条目都是一个单独的数组,所以我相信列表值。
  • 更好的问题是,您的列数据是否有充分的理由成为列表?如果没有,可以直接将列表分成新列并保存新的DataFrame。数据将更易于使用。就做df_a = df['columnA'].apply(pd.Series)

标签: python-3.x pandas jupyter-notebook


【解决方案1】:

试试,如果你的值是列表而不是字符串:

 df['colA'].astype(str).str.strip('[|]')

MVCE:

df = pd.DataFrame({'colA':[[1,2],[3,4]]})
df

输出:

   colA
0  [1, 2]
1  [3, 4]

将列表转换为字符串并去除字符。

df['colA'].astype(str).str.strip('[|]')

输出:

0    1, 2
1    3, 4
Name: colA, dtype: object

【讨论】:

    【解决方案2】:

    我建议使用不同于逗号的分隔符。你可以使用任何你想要的东西。

    ScottBoston 的设置

    df = pd.DataFrame({'colA':[[1,2],[3,4]]})
    

    applymap

    #                       The Delimiter ▼
    df.assign(colA=df.colA.map(lambda x: '|'.join(map(str, x))))
      colA
    0  1|2
    1  3|4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 2017-01-23
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 2020-09-29
      相关资源
      最近更新 更多