熊猫:从列表中删除方括号?

时间:2020-06-19 21:18:03

标签: pandas list dataframe listbrackets

我有一个带有列表的df。我正在尝试从列表中删除方括号。

df

            a      

    0     ['a','b']
    1     ['a']
    2     ['a','b','c']
    3     []

预期输出:

            a      

    0     'a','b'
    1     'a'
    2     'a','b','c'
    3     

3 个答案:

答案 0 :(得分:1)

您可以这样做:

df['a'] = ("'"+df['a'].agg("','".join)+"'").replace("''", "")

输出:

             a
0      'a','b'
1  'a','b','c'
2             

答案 1 :(得分:1)

另一种方式

m=df['a'].str.len()>0#Boolean select non empty lists
df.loc[m,'a']= ["'"+ item +"'" for item in df.loc[m,'a'].str.join("','") ]#Mask the non empty lists, strip corner bracket and insert inverted commas
df=df.mask(df.applymap(str).eq('[]'))# convert empty list into a a NaN
#df.loc[~m,'a']=''
print(df)



          a
0      'a','b'
1          'a'
2  'a','b','c'
3          NaN

答案 2 :(得分:1)

这是您可以做的:

import pandas as pd

df = pd.DataFrame({'a':[['a','b'],
                        ['a'],
                        ['a','b','c'],
                        []]})

df['a'] = ["'"+"', '".join(n)+"'" for n in df['a']]

print(df)

输出:

               a
0       'a', 'b'
1            'a'
2  'a', 'b', 'c'
3             ''