Pandas:在一列的重复值的后缀上添加递增数字,这些值按另一列的值分组并按索引排序



我试图在由另一列定义的组中,向按索引排序的任何重复值添加下划线和递增数字。

例如,我希望"化学"列中的重复值具有下划线和按索引排序并按"循环"列分组的递增数字。

df = pd.DataFrame([[1,1,1,1,1,1,2,2,2,2,2,2], ['NaOH', 'H20', 'MWS', 'H20', 'MWS', 'NaOh', 'NaOH', 'H20', 'MWS', 'H20', 'MWS', 'NaOh']]).transpose()
df.columns = ['Cycle', 'Chemistry']
df

原始表格

因此,输出将看起来像下面链接中的表格:

所需输出表

IIUC:

pandas.Series.str.catcumcount

df['Chemistry'] = df.Chemistry.str.cat(
df.groupby(['Cycle', 'Chemistry']).cumcount().add(1).astype(str),
sep='_'
)
df
Cycle Chemistry
0      1    NaOH_1
1      1     H20_1
2      1     MWS_1
3      1     H20_2
4      1     MWS_2
5      1    NaOh_1
6      2    NaOH_1
7      2     H20_1
8      2     MWS_1
9      2     H20_2
10     2     MWS_2
11     2    NaOH_2

最新更新