Python 如何使用自定义条件将列放入行中?
我有一个这样的数据帧 df1Python 如何使用自定义条件将列放入行中?,python,pandas,Python,Pandas,我有一个这样的数据帧 df1 A B C SN 0 10 23 48 456123 1 15 45 98 789456 2 16 62 55 123789 df2 A B C SN 0 10 19 48.0 456123 1 15 45 NaN 789456 2 68 77 55.0 123789 我需要下面的东西 SN 123789 456123 789456 A_x 16
A B C SN
0 10 23 48 456123
1 15 45 98 789456
2 16 62 55 123789
df2
A B C SN
0 10 19 48.0 456123
1 15 45 NaN 789456
2 68 77 55.0 123789
我需要下面的东西
SN 123789 456123 789456
A_x 16 10 15
B_x 62 23 45
C_x 55 48 98
A_y 68 10 15
B_y 77 19 45
C_y 55 48 0
我尝试过使用pandas groupby和pivot,但并没有按照我想要的那样工作。有什么帮助吗?您可以执行以下类似操作
output = pd.merge(df1,df2,on='SN').groupby(['SN']).sum().transpose()
输出:
SN 123789 456123 789456
A_x 16.0 10.0 15.0
B_x 62.0 23.0 45.0
C_x 55.0 48.0 98.0
A_y 68.0 10.0 15.0
B_y 77.0 19.0 45.0
C_y 55.0 48.0 0.0
稍后,您可以将类型从float更改为int。您可以执行如下操作
output = pd.merge(df1,df2,on='SN').groupby(['SN']).sum().transpose()
输出:
SN 123789 456123 789456
A_x 16.0 10.0 15.0
B_x 62.0 23.0 45.0
C_x 55.0 48.0 98.0
A_y 68.0 10.0 15.0
B_y 77.0 19.0 45.0
C_y 55.0 48.0 0.0
稍后,您可以将类型从float更改为int。使用替换0
by,如有必要,使用trne转置by:
另一个具有外部连接的解决方案,具有:
如有必要,与replace0
by一起使用,与trne transpose by一起使用:
另一个具有外部连接的解决方案,具有:
为什么聚合
sum
?先生,我犯了什么错误吗?嗯,我认为groupby在这里是没有必要的,也不确定是否要加入?问题有点不清楚。谢谢你,先生,你做得很好。我刚开始探索需要向你这样的人学习的东西:-)为什么聚合sum
?先生,我犯了什么错误吗?嗯,我认为这里没有必要使用groupby,也不确定是否要加入?问题有点不清楚。谢谢你,先生,你做得很好。我刚开始探索一些需要向你这样的人学习的东西:-)如果第一个SN
在df1
中更改为111
,预期的输出是什么?是否需要删除此行?序号将不会更改为111。最大值约为20。如果第一个SN
在df1
中更改为111
,则预期输出是什么?是否需要删除此行?序号将不会更改为111。最多20个。