如何从数据框架中删除方括号



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

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

删除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

尝试使用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的所有列应用相同的函数
for i in range(0, df.shape[0]):
df1['column1'][i] = str(df['column1'][i]).strip('[]')

我没有用一个示例数据框架来测试它,但以我使用pandas的经验,它应该可以工作。

编辑:此测试代码有效

import pandas as pd
df = pd.DataFrame({'column': ['test', '[test]']})
df1 = pd.DataFrame({'column1': ['a', 'b']})
for i in range(0, df.shape[0]):
df1['column1'][i] = str(df['column'][i]).strip('[]')

最新更新