我有一个带有列表的df。我正在尝试从列表中删除方括号。
df
a
0 ['a','b']
1 ['a']
2 ['a','b','c']
3 []
预期输出:
a
0 'a','b'
1 'a'
2 'a','b','c'
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 ''