合并数据帧并获得额外的行。 (蟒蛇/熊猫)

时间:2021-02-15 20:02:27

标签: python pandas dataframe

假设我有两个数据框。一种带有员工 ID。还有一个带有员工 ID 和一个布尔值,用于指示他们是否在提出要求时获得加薪(他们可以要求多次)。

<头>
ID
5
8
9
22
<头>
ID 提高
5 真的
5 错误
5 真的
8 真的
9 真的
22 错误

我如何创建一个数据框来合并员工 ID 以及他们是否获得加薪(无论他们问了多少次)?像下面这样。

<头>
ID 提高
5 真的
8 真的
9 真的
22 错误

每当我尝试正常合并时,由于多个相同的 ID 会创建额外的行。

2 个答案:

答案 0 :(得分:1)

这可能是你要找的吗

In [1]: import pandas as pd

In [2]: df = pd.DataFrame.from_dict({'ID': [5, 5, 5, 8, 9, 22], 'Raise': [True, False, True, True, True, False]})

In [3]: df
Out[3]:
   ID  Raise
0   5   True
1   5  False
2   5   True
3   8   True
4   9   True
5  22  False

In [4]: df.groupby('ID')['Raise'].any().reset_index()
Out[4]:
   ID  Raise
0   5   True
1   8   True
2   9   True
3  22  False

答案 1 :(得分:0)

正如@Paul H 所说,您需要对第二个数据帧进行聚合

df2.groupby("ID")["Raise"].any()

然后您可以使用 ID 与第一个合并。