python - 分组并返回所有列
问题描述
我的数据框看起来像
c1 c2 c3
1 2 A
1 3 B
1 5 NA
1 7 D
2 0 E
2 1 NA
2 2 B
2 4 A
2 6 B
我想用 bfill 为每个 id 填充最后一列。
c1 c2 c3
1 2 A
1 3 B
1 5 D
1 7 D
2 0 E
2 1 B
2 2 B
2 4 A
2 6 B
我试过了
df.groupby(['c1']).apply(lambda x:
x['c3'].fillna(method='bfill')).reset_index()
但它缺少 c2 列。如何获得所需的格式。
解决方案
只需将 c3 的值更改为 bfill 的结果:
df['c3'] = df.groupby(['c1'])['c3'].bfill()
输出:
c1 c2 c3
0 1 2 A
1 1 3 B
2 1 5 D
3 1 7 D
4 2 0 E
5 2 1 B
6 2 2 B
7 2 4 A
8 2 6 B
推荐阅读
- pytorch - 用于使嵌入相似的 Pytorch 损失函数
- php - 将 PHP CURL 与代理一起使用时出现 403 错误
- ios - 在带有 Swift 包管理器的 iOS 应用项目中使用 Charts Framework 时遇到问题
- c++ - 指针写入c++中的内存循环
- authentication - Telegram 网络登录小部件:获取 chat_id
- javascript - Laravel:CSRF 令牌与 X-XSRF-TOKEN 不匹配
- sql - Oracle SQL,列名给出 ORA-00911:无效字符
- python - 导出回归输出
- mysql - 在 where 子句中使用 ISNUMERIC 函数时遇到问题
- javascript - Spotify iframe 自动播放和循环播放