繁体   English   中英

Python 合并数据帧

[英]Python Merging data frames

在 python 中,我有一个看起来像这样的 df

Name    ID
Anna    1
Polly   1
Sarah   2
Max     3
Kate    3
Ally    3
Steve   3

还有一个看起来像这样的df

Name    ID
Dan     1
Hallie  2
Cam     2
Lacy    2
Ryan    3
Colt    4
Tia     4

如何合并 df 以使 ID 列看起来像这样

Name    ID
Anna    1
Polly   1
Sarah   2
Max     3
Kate    3
Ally    3
Steve   3
Dan     4
Hallie  5
Cam     5
Lacy    5
Ryan    6
Colt    7
Tia     7

这只是一个最小的可重现示例。 我的实际数据集有 1000 个值。 我基本上是在合并数据帧,并希望 ID 以数字顺序(前一个数据帧的延续)而不是每次从一个重复。 我知道如果 ID 是唯一标识符,我可以重置索引。 但在这种情况下,可以有多个人拥有相同的 ID。 那么我该如何解释呢?

从您上面提供的示例中,您可以观察到我们可以通过以下方式获得最终的 dataframe:将第一个 df 中 ID 的最大值添加到第二个,然后将它们连接起来,更好地解释这一点:

Name  df2   final_df
Dan   1     4

final_df 中的该值是通过执行 1+(来自 df1 的 ID 的最大值,即 3)获得的,并且对于 dataframe 的所有条目都遵循此趋势。

代码:

import pandas as pd

df = pd.DataFrame({'Name':['Anna','Polly','Sarah','Max','Kate','Ally','Steve'],'ID':[1,1,2,3,3,3,3]})
df1 = pd.DataFrame({'Name':['Dan','Hallie','Cam','Lacy','Ryan','Colt','Tia'],'ID':[1,2,2,2,3,4,4]})

max_df = df['ID'].max()
df1['ID'] = df1['ID'].apply(lambda x: x+max_df)
final_df = pd.concat([df,df1])
print(final_df)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM