python - 为什么不能使用“替换”方法用列表替换整数 - 熊猫
问题描述
所以假设我有一个熊猫数据框,如下所示:
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 []
解决方案
可以通过列表理解来实现,但是因为混合内容 - 数字与列表不推荐:
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 []
推荐阅读
- java - 如何在不同进程中使用 LocalBroadcastManager 在 Activity 和 Service 之间进行通信
- flutter - Flutter Stream Builder - 流获取 null
- html - 如何从 2 段创建堆叠图片?
- julia - 什么是 Julia 相当于 numpy 的 where 函数?
- python - 熊猫组然后申请抛出警告
- sql - 如何仅使用数据提取值但仅填充一组字段
- java - KMS 使用 Boto3 加密文件数据
- sitecore8 - 体验分析报告数据库中的 SiteNames 表 - 如何/何时填充?
- sql-update - 使用 SlashDb 更新数据
- sql-server - 控制 INSERT 和 UPDATE 语句的执行顺序