Vic*_*cky 4 python group-by transform pandas
我有一个这样的df,
df = pd.DataFrame({
"Name" : ["A","B","C","D","E","F","G"],
"part number" : ["1","3","2","1","5","1","2"],
"detail1" : ["A","C","B","B","E","E","E"],
"detail2" : ["one","three","two","two","five","five","five"]
})
df
Name part number detail1 detail2
A 1 A one
B 3 C three
C 2 B two
D 1 B two
E 5 E five
F 1 E five
G 2 E five
Run Code Online (Sandbox Code Playgroud)
我想按零件号分组并用第一行值填充detail1和detail2。
我的预期输出,
Name part number detail1 detail2
A 1 A one
B 3 C three
C 2 B two
D 1 A one
E 5 E five
F 1 A one
G 2 B two
Run Code Online (Sandbox Code Playgroud)
我尝试了,df.groupby("part number")[["detail1","detail2"]].first()但没有给出预期的输出,请帮忙。
使用groupbyonpart number和转换列detail1,detail2使用first并将此转换后的列分配回df:
cols = ['detail1', 'detail2']
df[cols] = df.groupby('part number')[cols].transform('first')
Run Code Online (Sandbox Code Playgroud)
结果:
print(df)
Name part number detail1 detail2
0 A 1 A one
1 B 3 C three
2 C 2 B two
3 D 1 A one
4 E 5 E five
5 F 1 A one
6 G 2 B two
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2020 次 |
| 最近记录: |