为什么不能使用`replace`方法 - pandas将整数替换为列表

U10*_*ard 6 python types replace dataframe pandas

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

df=pd.DataFrame({'a':[1,2,3,0]})
Run Code Online (Sandbox Code Playgroud)

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

print(df.replace(0,[]))
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

TypeError: Invalid "to_replace" type: 'int'
Run Code Online (Sandbox Code Playgroud)

我尝试了所有可能的事情,即:

df[df==0]=[]
Run Code Online (Sandbox Code Playgroud)

等等...

但没有任何作用.

期望的输出(如果混淆):

   a
0  1
1  2
2  3
3 []
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 6

列表理解是可能的,但因为混合内容 - 数字与列表不推荐:

df['a'] = [[] if x == 0 else x for x in df.a]

print (df)

    a
0   1
1   2
2   3
3  []
Run Code Online (Sandbox Code Playgroud)

并替换所有列中的所有值:

df = df.applymap(lambda x: [] if x == 0 else x)
print (df)
    a
0   1
1   2
2   3
3  []
Run Code Online (Sandbox Code Playgroud)