python - 如何对数据框值进行分组、排序和填充
问题描述
我正在尝试从 D = 1 列的熊猫数据框中选择行,然后我想按 A 列对所选行进行分组,然后使用ffill 函数将 C 列中的值复制到该组的所选行中 - 请注意C 的值因组而异。
示例 - 从这个开始:
A B C D
101 alpha NaN 1
101 beta NaN 1
103 alpha NaN 1
102 alpha NaN 0
102 beta NaN 0
103 beta NaN 0
101 delta happy 1
102 delta NaN 0
103 delta sad 1
想以这个结束:
A B C D
101 alpha happy 1
101 beta happy 1
101 delta happy 1
102 alpha NaN 0
102 beta NaN 0
102 delta NaN 0
103 alpha sad 1
103 beta sad 1
103 delta sad 1
我一直在尝试使用 groupby、sort_values 和 ffill - 但似乎无法正确确定操作顺序。
解决方案
可以通过对它们进行排序和分组来检索它。
df = df.sort_values(['A','B'], ascending=[True,True])
df['C'] = df.groupby('A')['C'].fillna(method='bfill')
df
A B C D
0 101 alpha happy 1
1 101 beta happy 1
6 101 delta happy 1
3 102 alpha NaN 0
4 102 beta NaN 0
7 102 delta NaN 0
2 103 alpha sad 1
5 103 beta sad 0
8 103 delta sad 1
推荐阅读
- c - C语言读写二进制文件
- java - 用java读取混合数据的文件
- extjs6-classic - 如何在面板 Ext js 中对齐 html 文本
- c++ - 为什么你不应该`std::move(*const_cast
(ele))`std::initializer_list` 的元素? - types - 如何从usize中减去isize?
- c# - 是否可以订阅 IObservable
用一种方法? - javascript - 开发服务器返回响应错误码:500 react-native
- python - 基于 LSTM 的文本生成器的理想验证准确度应该是多少?
- python - 如何在以下代码中应用计数,该代码仅针对第一页运行
- python-3.x - 是否可以使用 ezdxf 在现有图层上定位文本?