【问题标题】:Pandas: Adding incremental numbers to the suffix of repeating values of a column that are grouped by the value of another column and ordered by indexPandas:将增量数字添加到按另一列的值分组并按索引排序的列的重复值的后缀
【发布时间】:2020-04-21 03:49:55
【问题描述】:

我正在尝试将下划线和递增数字添加到按索引排序的任何重复值以及由另一列定义的组内。

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

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

Original Table

因此输出将如下面链接中的表格所示:

Desired output table

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    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
    

    【讨论】:

    • 我尝试了您的代码,但它返回了原始表格。感谢您的帮助。
    • 我没有将该代码的结果分配回数据帧。这就是为什么您仍然看到原始数据框未更改的原因。我会编辑帖子....我已经更新了帖子。
    猜你喜欢
    • 2023-01-26
    • 2019-01-13
    • 2023-01-10
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 2016-02-15
    相关资源
    最近更新 更多