【发布时间】:2018-02-19 13:00:48
【问题描述】:
我有一个这样的数据框:
df = pd.DataFrame({'dim': {0: 'A', 1: 'B', 2: 'A', 3: 'B', 4: 'A'},
'id': {0: 1, 1: 1, 2: 2, 3: 2, 4: 3},
'value1': {0: nan, 1: 1.2, 2: 2.0, 3: nan, 4: 3.0},
'value2': {0: 1.0, 1: 2.0, 2: nan, 3: nan, 4: nan}})
dim id value1 value2
0 A 1 NaN 1.0
1 B 1 1.2 2.0
2 A 2 2.0 NaN
3 B 2 NaN NaN
4 A 3 3.0 NaN
我现在想在 id 上聚合不同维度的值,以便以下情况成立: 如果 dim == 'A' 不是 None 则取 dim == 'A' 的值,否则取 dim == 'B' 的值(如果它不是 None)。如果两者都是None,就取None。
所以结果应该是:
id value1 value2
0 1 1.2 1.0
1 2 2.0 NaN
2 3 3.0 NaN
我的猜测是,我需要使用某种形式的按功能分组,但我不太确定。也许有什么应用?
【问题讨论】:
标签: python pandas numpy python-3.5