zmy_zm 2022-11-21 20:08 采纳率: 100%
浏览 0
已结题

用python或者R的计数问题

我需要通过A列的name信息来得到B,请问用python或者R怎么操作。

img

  • 写回答

1条回答 默认 最新

  • chuifengde 2022-11-21 22:29
    关注
    import pandas as pd
    
    df = pd.DataFrame(data = {'name': ['sus-MAPK4', 'sus-MAPK4', 'sus-MAPK4', 'sus-ME', 'sus-ME', 'sus-U2'],})
    print(df)
    def v(s):
        value = [s.iat[0, 0] + '-'+ f'{i:04}' for i in range(1, len(s.index.tolist()) + 1)]
        df = pd.DataFrame(data = value, columns = ['name'], index = s.index)    
        return df
    df['B'] = df.groupby('name', group_keys = False).apply(v)
    print(df)
    --result
        name               B
    0  sus-MAPK4  sus-MAPK4-0001
    1  sus-MAPK4  sus-MAPK4-0002
    2  sus-MAPK4  sus-MAPK4-0003
    3     sus-ME     sus-ME-0001
    4     sus-ME     sus-ME-0002
    5     sus-U2     sus-U2-0001
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月21日