[英]add a new column for every group in Pandas
我有以下格式的熊貓數據框
id name zip
123 aaa 614
123 nnn 615
341 yun 318
441 ros 911
對於每組唯一 id,我根據列 id 創建一個新列。 下面是代碼,但不是為相似的 id 創建相同的 uuid,而是創建不同的 uuid。
df_complete = pd.DataFrame([])
for new_id in df['id'].unique():
df_interim = df[df['id'] == new_id]
df_interim['uuid'] = df_interim['id'].apply(lambda _: uuid.uuid4())
df_complete.append(df_interim)
預期輸出:
id name zip uuid
123 aaa 614 uuid_1
123 nnn 615 uuid_1
341 yun 318 uuid_2
441 ros 911 uuid_3
任何線索或建議將不勝感激
您可以使用.groupby()
和.transform()
並在.transform()
調用uuid
函數,如下所示:
.transform()
有助於為同一組(相同id
)中的所有條目設置相同的值(uuid)。
df['uuid'] = df.groupby('id')['id'].transform(lambda _: uuid.uuid4())
結果:
print(df)
id name zip uuid
0 123 aaa 614 e7d7c519-52e0-486f-99f2-722b73c16242
1 123 nnn 615 e7d7c519-52e0-486f-99f2-722b73c16242
2 341 yun 318 dc24c9d0-4c52-44ab-ac19-c6ce64fed5b7
3 441 ros 911 0a14dc45-cbe7-43aa-8b54-90ef88ca8a7e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.