[英]Python pandas dataframe: dataframe to another dataframe
I need help in Python pandas dataframe.我需要 Python pandas 数据框的帮助。 I have dataframe in below format(refer Current dataframe) and my requirement is to covert into another data frame in the different format which i have pasted below to it(refer desired dataframe).
我有以下格式的数据帧(请参阅当前数据帧),我的要求是转换为我在下面粘贴的不同格式的另一个数据帧(请参阅所需的数据帧)。 Can any one help me how can i achieve the desired output.
任何人都可以帮助我如何实现所需的输出。
Current Dataframe当前数据帧
Name1 Name2 Score
BELFIUS INSURANCE BELFIUS INSURANCES 0.79
BELFIUS INSURANCE BELFIUS 0.50
BELFIUS INSURANCE BELFIUS T 0.31
AIR PRODUCTS AIR PRODUCT 0.78
AIR PRODUCTS AIR PRO 0.63
AIR PRODUCTS PRODUCTS 0.39
ARDAGH GLASS ARDAGH 0.60
Desired dataframe所需的数据帧
Name1 M1 Score1 M2 Score2 M3 Score3
BELFIUS INSURANCE BELFIUS INSURANCES 0.79 BELFIUS 0.50 BELFIUS T 0.31
AIR PRODUCTS AIR PRODUCT 0.78 AIR PRO 0.63 PRODUCTS 0.39
ARDAGH GLASS ARDAGH 0.60 nan nan nan nan
This is essentially pivot by one column:这基本上是一列透视:
out_df = (df.assign(col=df.groupby('Name1').cumcount()+1)
.pivot_table(index='Name1', columns='col', aggfunc='first')
.swaplevel(0,1,axis=1)
.sort_index(axis=1)
)
out_df.columns = [f"{y}{x}" if y=="Score" else f"M{x}" for x,y in out_df.columns]
out_df = out_df.reset_index()
Output:输出:
Name1 M1 Score1 M2 Score2 M3 Score3
-- ----------------- ------------------ -------- ------- -------- --------- --------
0 AIR PRODUCTS AIR PRODUCT 0.78 AIR PRO 0.63 PRODUCTS 0.39
1 ARDAGH GLASS ARDAGH 0.6 nan nan nan nan
2 BELFIUS INSURANCE BELFIUS INSURANCES 0.79 BELFIUS 0.5 BELFIUS T 0.31
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.