【发布时间】:2020-11-07 12:57:23
【问题描述】:
请看下面的输入数据框。
df = pd.DataFrame({"Name": ['A','A','B','B','C'], 'Tag':[1,2,3,4,5], 'Field':['X','X','Y','Z','R'] })
Name Tag Field
0 A 1 X
1 A 2 X
2 B 3 Y
3 B 4 Z
4 C 5 R
我将“名称”列的计数视为名为“计数”的附加列,同时保留“标签”和“字段”列的值。
预期输出:
Name Count Tag Field
0 A 2 1 X
1 A 2 2 X
2 B 2 3 Y
3 B 2 4 Z
4 C 1 5 R
我的尝试:
我可以通过groupby 和merge 及其以下来实现这一点。但是,我猜我过于复杂化并寻找比我更好的解决方案。请帮忙。
df1 = df.groupby("Name")['Tag'].count().reset_index()
df1 = df1.rename(columns={'Tag' : 'Count'})
df1 = df1.merge(df, on='Name', how='left')
【问题讨论】:
标签: python python-3.x pandas dataframe pandas-groupby