我有两列字母和值,新列应该具有基于“字母”列的递增值,如下所示:
import pandas as pd
df = pd.DataFrame(data=[['a', 'one'],
['a', 'two'],
['b', 'three'],
['b', 'four'],
['c', 'five'],
['c', 'five'],
['c', 'five']
],
columns=['Letter', 'value'])
#df['counter'] = df['value'].shift().where(df['Letter'].shift() == df['Letter'], '')
print(df)
df['counter'] = df.apply(lambda x: x+1 if df['Letter'].shift() == df['Letter'] else 1, axis=1)
#print(df)
'''
Expected output
Letter value counter
0 a one p1
1 a two p2
2 b three p1
3 b four p2
4 c five p1
5 c five p2
6 c five p3
'''
你能帮我修复上面的代码吗?谢谢。
更准确地编辑我的问题,我需要稍后将行转换为列(我让该代码使用数据透视函数工作)
跃然一笑
三国纷争
随时随地看视频慕课网APP
相关分类