首页 > 解决方案 > 如何从数据框中删除方括号

问题描述

我看到了许多与我的问题相关的链接:

如何从字典内的嵌套列表中删除无关的方括号?

从 Dataframe 中删除方括号

从 Dataframe 中删除方括号

但这些都不起作用

下面是我的例子:

df1

column1    column2   column3    ..... upto 'n' number of columns

[data1]    data1     data1
NAN        data2     data2
[data2]    data3     [data3, data3, testing how are you guys hope you guys are doing :)]
[data3]    data3     [data4, dummy text to test to test test test] 
NAN        data4     [data5] 

以下是我尝试过的代码:

df1[column1] = df[column1].str[0]
# not working !
# want to give df1 instead of df1[columns] because there are lot of 
# columns

我只想删除括号,而不是其他任何东西,并且只想提供数据框而不是列,因为有很多列!

预期输出:

column1    column2   column3    ..... upto 'n' number of columns

data1      data1     data1
NAN        data2     data2
data2      data3     data3, data3, testing how are you guys hope you guys are doing :)
data3      data3     data4, dummy text to test to test test test
NAN        data4     data5

标签: pythonarraysdataframedictionary

解决方案


尝试apply,explodegroupby:

>>> df.apply(lambda x: x.explode().astype(str).groupby(level=0).agg(", ".join))
  column1 column2                                            column3
0   data1   data1                                              data1
1     nan   data2                                              data2
2   data2   data3  data3, data3, testing how are you guys hope yo...
3   data3   data3        data4, dummy text to test to test test test
4     nan   data4                                              data5
  1. 用于pandas.explode()将每个列表元素转换为自己的行,复制索引值。
  2. 然后groupby使用相同的索引值和聚合str.join()
  3. 用于apply将相同的函数应用于 DataFrame 的所有列。

推荐阅读