Python 如何使用自定义条件将列放入行中?

Python 如何使用自定义条件将列放入行中?,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

我有一个这样的数据帧

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    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:

另一个具有外部连接的解决方案,具有:

如有必要,与replace
0
by一起使用,与trne transpose by一起使用:

另一个具有外部连接的解决方案,具有:


为什么聚合
sum
?先生,我犯了什么错误吗?嗯,我认为groupby在这里是没有必要的,也不确定是否要加入?问题有点不清楚。谢谢你,先生,你做得很好。我刚开始探索需要向你这样的人学习的东西:-)为什么聚合
sum
?先生,我犯了什么错误吗?嗯,我认为这里没有必要使用groupby,也不确定是否要加入?问题有点不清楚。谢谢你,先生,你做得很好。我刚开始探索一些需要向你这样的人学习的东西:-)如果第一个
SN
df1
中更改为
111
,预期的输出是什么?是否需要删除此行?序号将不会更改为111。最大值约为20。如果第一个
SN
df1
中更改为
111
,则预期输出是什么?是否需要删除此行?序号将不会更改为111。最多20个。