从列中的列表中删除方括号

Remove square brackets from lists in a column

我在数据框中有包含列表的列。我只想删除方括号:

| Fruits                               |
| -------------------------------------|
| [apple, kiwi, pineapple, mango, lime]| 
| [strawberry, cherry, kiwi, orange]   | 
| [...]                                |

期望的输出:

| Fruits                             |
| -----------------------------------|
| apple, kiwi, pineapple, mango, lime| 
| strawberry, cherry, kiwi, orange   | 
| ...                                |

我试过了

for fruit in df['Fruits']:
    df['Fruits'] = (','.join(word))
    print(df['Fruits'])

输出不是我想要的,如何将新列表附加到新列(当然不需要方括号)谁能帮忙?

您可以尝试使用 replace() 函数将 [] 个字符替换为 empty 个字符:

for fruit in df['Fruits']:
    df['Fruits'] = df['Fruits'].replace("[", "").replace("]", "")
    print(df['Fruits'])

IIUC,试试这个用于字符串存储或列表存储:

# String object
df_string = pd.DataFrame({'Fruits':['[apple, kiwi, pineapple, mango]',
                                     '[strawberry, cherry, kiwi, orange]']})

df_string['Fruits'].str.replace('\[|\]','', regex=True)

输出:

0       apple, kiwi, pineapple, mango
1    strawberry, cherry, kiwi, orange
Name: Fruits, dtype: object

或者,

#List object
df_list = pd.DataFrame({'Fruits':[['apple', 'kiwi', 'pineapple', 'mango'],
                                     ['strawberry', 'cherry', 'kiwi', 'orange']]})

df_list['Fruits'].agg(', '.join)

输出:

0       apple, kiwi, pineapple, mango
1    strawberry, cherry, kiwi, orange
Name: Fruits, dtype: object

注意:df_list 和 df_string 字符串表示看起来相同。

print(df_list)
                               Fruits
0     [apple, kiwi, pineapple, mango]
1  [strawberry, cherry, kiwi, orange]

print(df_string)
                              Fruits
0     [apple, kiwi, pineapple, mango]
1  [strawberry, cherry, kiwi, orange]