Python 3.x 如何在同一数据帧中合并两行

Python 3.x 如何在同一数据帧中合并两行,python-3.x,pandas,Python 3.x,Pandas,我有一个包含两行的数据框。这两行的“ID”列中的值相同。如何创建一个新的数据框,并将两行中的所有值合并到一行中,但合并到单独的列中 例如,如果在输入数据框中,两行中都有一个名为“Amount”的列,则新数据框应包含一行,其中两个列分别为Amount_1和Amount_2 groupby不起作用,因为我不希望所有信息都在同一列中 我不能合并,因为这不是来自两个不同的数据帧 转向: 进入: 使用添加一列,该列将包含新数据框的列名。之后,使用: 编辑 有了新的规范,我觉得您真的应该使用,比如: df[

我有一个包含两行的数据框。这两行的“ID”列中的值相同。如何创建一个新的数据框,并将两行中的所有值合并到一行中,但合并到单独的列中

例如,如果在输入数据框中,两行中都有一个名为“Amount”的列,则新数据框应包含一行,其中两个列分别为Amount_1和Amount_2

groupby不起作用,因为我不希望所有信息都在同一列中

我不能合并,因为这不是来自两个不同的数据帧

转向:

进入:


使用添加一列,该列将包含新数据框的列名。之后,使用:

编辑 有了新的规范,我觉得您真的应该使用,比如:

df['cumcount'] = df.groupby('ID').cumcount().add(1)
df.set_index(['ID', 'cumcount']).unstack()
#         Amount       Name      State     
#cumcount      1     2    1    2     1    2
#ID                                        
#1          16.0   NaN    A  NaN    CA  NaN
#2          32.0  64.0    B    C    GA   NY
如果您坚持,以后可以始终加入多重索引的列:

df2.columns = ['_'.join([coltype, str(count)]) for coltype, count in df2.columns.values]

我冒昧地加了一张我理解的表格。如果我弄错了,请告诉我。谢谢你,埃里克。你完全正确。我只是想尽快得到答案。谢谢你,琼迪。但是,如果有更多的列,比如Amount(比如姓名、号码、地址),我希望这些详细信息也能形成更多类似Amount_1和Amount_2的列,请编辑问题中的示例数据框,以便清楚地知道编辑了哪些输入和所需的输出。请查收。我需要那种格式的结果。
df['amountnr'] = 'Amount_' + df.groupby('ID').cumcount().add(1).astype(str)
df.pivot(index='ID', columns= 'amountnr', values='Amount')
#amountnr  Amount_1  Amount_2
#ID                          
#1             16.0       NaN
#2             32.0      64.0
df['cumcount'] = df.groupby('ID').cumcount().add(1)
df.set_index(['ID', 'cumcount']).unstack()
#         Amount       Name      State     
#cumcount      1     2    1    2     1    2
#ID                                        
#1          16.0   NaN    A  NaN    CA  NaN
#2          32.0  64.0    B    C    GA   NY
df2.columns = ['_'.join([coltype, str(count)]) for coltype, count in df2.columns.values]