假设我有两个数据框。一种带有员工 ID。还有一个带有员工 ID 和一个布尔值,用于指示他们是否在提出要求时获得加薪(他们可以要求多次)。
ID |
---|
5 |
8 |
9 |
22 |
ID | 提高 |
---|---|
5 | 真的 |
5 | 错误 |
5 | 真的 |
8 | 真的 |
9 | 真的 |
22 | 错误 |
我如何创建一个数据框来合并员工 ID 以及他们是否获得加薪(无论他们问了多少次)?像下面这样。
ID | 提高 |
---|---|
5 | 真的 |
8 | 真的 |
9 | 真的 |
22 | 错误 |
每当我尝试正常合并时,由于多个相同的 ID 会创建额外的行。
答案 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
与第一个合并。