首页 > 解决方案 > 为什么不能使用“替换”方法用列表替换整数 - 熊猫

问题描述

所以假设我有一个熊猫数据框,如下所示:

df=pd.DataFrame({'a':[1,2,3,0]})

所以我的目标是在这个数据框中用(空列表)替换0值,但我做到了:[]

print(df.replace(0,[]))

但这给了我一个错误:

TypeError: Invalid "to_replace" type: 'int'

我尝试了所有可能的方法,即:

df[df==0]=[]

ETC...

但没有任何效果。

所需的输出(以防混淆):

   a
0  1
1  2
2  3
3 []

标签: pythonpandasdataframereplacetypes

解决方案


可以通过列表理解来实现,但是因为混合内容 - 数字与列表不推荐:

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  []

推荐阅读