gpt4 book ai didi

python - Pandas DataFrame Groupby 获取唯一行条件并识别增加值直至组数

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:36 27 4
gpt4 key购买 nike

我有一个 DataFrame,其中列值的组合标识一个唯一地址(A、B、C)。我想识别所有此类行并为它们分配一个唯一标识符,我会根据地址递增该标识符。

例如

A B C D E
0 1 1 0 1
0 1 2 0 1
0 1 1 1 1
0 1 3 0 1
0 1 2 1 0
0 1 1 2 1

我想生成以下内容

A B C D E  ID
0 1 1 0 1 0
0 1 2 0 1 1
0 1 1 1 1 0
0 1 3 0 1 2
0 1 2 1 0 1
0 1 1 2 1 0

我尝试了以下方法:

id = 0
def set_id(df):
global id
df['ID'] = id
id += 1


df.groupby(['A','B','C']).transform(set_id)

这将返回一个 NULL 数据框......这绝对不是这样做的方式......我是 Pandas 的新手。上面实际上应该使用 df[['A','B','C']].drop_duplicates() 来获取所有唯一值谢谢。

最佳答案

我想这就是你需要的:

df2 = df[['A','B','C']].drop_duplicates() #get unique values of ABC
df2 = df2.reset_index(drop = True).reset_index() #reset index to create a column named index
df2=df2.rename(columns = {'index':'ID'}) #rename index to ID
df = pd.merge(df,df2,on = ['A','B','C'],how = 'left') #append ID column with merge

关于python - Pandas DataFrame Groupby 获取唯一行条件并识别增加值直至组数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com