因此,假设我有一个 Pandas 数据框,如下所示:
df=pd.DataFrame({'a':[1,2,3,0]})
所以我的目标是在此数据框中用
0
(空列表)替换[]
值,但是我做到了:print(df.replace(0,[]))
但这给了我一个错误:
TypeError: Invalid "to_replace" type: 'int'
我尝试了所有可能的方法,即:
df[df==0]=[]
等等...
但是没有任何效果。
所需的输出(以防混淆):
a
0 1
1 2
2 3
3 []
最佳答案
可以通过列表理解来实现,但是由于混合内容-带有列表的数字不建议使用:
df['a'] = [[] if x == 0 else x for x in df.a]
print (df)
a
0 1
1 2
2 3
3 []
并替换所有列中的所有值:
df = df.applymap(lambda x: [] if x == 0 else x)
print (df)
a
0 1
1 2
2 3
3 []