是否可以将新索引分别应用于 DF 进行分组groupby
?准确地说 - 有没有一种优雅的方法可以做到这一点,并且可以通过groupby
组更改原始 DF 吗?
UPD:我的数据如下所示:
A B C
0 a x 0.903343
1 a z 0.982050
2 g x 0.274823
3 g y 0.334491
4 c z 0.756728
5 f z 0.697841
6 d z 0.505845
7 b z 0.768199
8 b y 0.743012
9 e x 0.697212
我按列“A”和“B”分组,并且我希望该列的每对唯一值在原始 DF 中都具有相同的索引值。另外 - 原始 DF 可能很大,我试图弄清楚如何在不低效地形成全新 DF 的情况下制作这样的重新索引。
目前我正在使用这个解决方案:
df = pd.DataFrame({'A': [random.choice(ascii_lowercase[:5]) for _ in xrange(10)],
'B': [random.choice(['x', 'y']) for _ in xrange(10)],
'C': [random.random() for _ in xrange(10)]})
df['id'] = None
new_df = pd.DataFrame()
for i, (n, g) in enumerate(df.groupby(['A', 'B'])):
g['id'] = i
new_df = new_df.append(g)
new_df.set_index('id', inplace=True)