假设我按如下方式导入 pandas 和 numpy:
import pandas as pd
import numpy as np
并构建以下数据框:
df = pd.DataFrame({'Alpha'
['A','A','A','B','B','B','B','C','C','C','C','C'],'Beta' : np.NaN})
...这给了我这个:
Alpha Beta
0 A NaN
1 A NaN
2 A NaN
3 B NaN
4 B NaN
5 B NaN
6 B NaN
7 C NaN
8 C NaN
9 C NaN
10 C NaN
11 C NaN
如何使用 pandas 获取以下数据框?
df_u = pd.DataFrame({'Alpha':['A','A','A','B','B','B','B','C','C','C','C','C'],'Beta' : [1,2,3,1,2,2,3,1,2,2,2,3]})
即:
Alpha Beta
0 A 1
1 A 2
2 A 3
3 B 1
4 B 2
5 B 2
6 B 3
7 C 1
8 C 2
9 C 2
10 C 2
11 C 3
一般来说,我想要实现的目标可以用以下逻辑来描述:
假设我们将 df 按 Alpha 分组。
对于每个组,对于组中的每一行......
如果行的索引等于组中行的最小索引,则将该行的 Beta 赋值为 1,
否则,如果行的索引等于组中行的最大索引,则为该行分配 3 到 Beta,
否则将 2 分配给该行的 Beta。
德玛西亚99
郎朗坤
米琪卡哇伊
相关分类