【发布时间】:2019-07-18 16:00:36
【问题描述】:
我有一个看起来像这样的数据框
ID ..... config_name config_version ...
aa A 0
ab A 7
ad A 7
ad A 27
bb B 0
cc C 0
cd C 8
我想对 config_name 进行分组并对每个唯一的 config_version 应用 cumcount,以便我得到一个额外的列,例如
ID ..... config_name config_version config_version_count
aa A 0 0
ab A 7 1
ad A 7 1
ad A 27 2
bb B 0 0
cc C 0 0
cd C 8 1
但我似乎不明白该怎么做。
我尝试过使用
unique_count = df.groupby('config_name')['config_version'].cumcount()
unique_count = pd.DataFrame({'config_name': [unique_count.index], 'config_version_count: [unique.count.values]})
df = pd.merge(df,unique_count, on = 'config_name' , how = 'left')
它给出以下输出
ID ..... config_name config_version config_version_count
aa A 0 0
ab A 7 1
ad A 7 2
ad A 27 3
bb B 0 0
cc C 0 0
cd C 8 1
我也试过了
unique_count = df.drop_duplicates().groupby('config_name')['config_version'].cumcount()
unique_count.reindex(df.index).ffill()
df['config_version_count'] = unique_count
但这给出了与第一次尝试相同的输出。
知道我该怎么做吗?
【问题讨论】:
标签: python pandas dataframe pandas-groupby