Pandas: Удалить квадратные скобки из списка? - PullRequest
0 голосов
/ 20 июня 2020

у меня есть 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 ]

1 голос
/ 20 июня 2020

Другой способ

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
1 голос
/ 02 июля 2020

Вот что вы можете сделать:

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             ''
1 голос
/ 20 июня 2020

Можно сделать:

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

Вывод:

             a
0      'a','b'
1  'a','b','c'
2             
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...