python - Pandas 根据索引向 Dataframe 列添加值,如果值存在则追加
问题描述
我根据索引值为列分配值,如果值存在,则将新值附加到旧值
我尝试根据索引将值应用于列,但无法将值附加到列中已有的值
数据框:-
foo bar
0 1 1
1 2 2
2 3 3
3 3 3
代码 :-
values = ['a', 'b']
for val in values:
df.loc[df['foo'] == 1, foo2] = val
输出数据框:
foo bar foo2
0 1 1 b
1 2 2
2 3 3
3 3 3
预期的数据框:-
foo bar foo2
0 1 1 a,b
1 2 2
2 3 3
3 3 3
解决方案
正如你注意到的那样
df.loc[df['foo'] == 1, foo2] = b
覆盖以前的值,以便您最终只得到b
. 您需要以这种方式解决问题是否有特殊原因?您可以编写自定义函数并使用 apply 来附加值,但这不是应该使用 pandas 的方式。我建议创建另一列'foo3'
。之后您可以随时加入这些字母。
推荐阅读
- c# - 使用 ReSharper 按模式搜索更改类型
- android - 使用电话管理器从 SIM 卡中获取电话号码
- python - 将单词列表与职位描述列表匹配python的最佳方法
- javascript - 节点 cmd 文件将进入根目录而不是 .bin 文件夹?
- python - 将默认值为 0 的 Django 字段迁移到 PostgreSQL 数据库
- html - 可以将交互式 MATLAB 图形导出为 HTML 吗?
- javascript - 使用 Angular 5 验证上传的图像大小
- hadoop - Hadoop3.1.1中远程VM的主节点IP
- php - websocket + php + nginx - 超级简单
- bash - 杀死管道左侧的进程