【发布时间】:2021-09-24 01:09:17
【问题描述】:
所以我有 2 个数据框,我通过它们重新定义的索引加入,这是我们用来识别研究的数字,当我加入它们时,它们看起来像这样:
df1(包含所有研究编号):
| Index | State | PS |
|---|---|---|
| 1001 | CA | 0 |
| 1002 | NY | 0 |
| 1003 | NJ | 1 |
df2(不包含所有研究编号且包含重复):
| Index | Study |
|---|---|
| 1001 | Active |
| 1002 | Active |
| 1002 | Closed |
我目前有 df1 = df1.join(df2) 输出:
| Index | State | PS | Study |
|---|---|---|---|
| 1001 | CA | 0 | Active |
| 1002 | NY | 0 | Active |
| 1002 | NY | 0 | Closed |
| 1003 | NJ | 1 |
在此示例 df 中,我希望仅将 df2 中的第一个 1002 实例与 df1 合并。假设它与“如何”或“开启”有关,但我对文档的理解不够好,因为我对 Pandas 还很陌生。谢谢! 期望的输出是:
| Index | State | PS | Study |
|---|---|---|---|
| 1001 | CA | 0 | Active |
| 1002 | NY | 0 | Active |
| 1003 | NJ | 1 |
【问题讨论】:
-
第一个记录 1002 在列研究中处于活动状态是巧合,还是对于您定义为第一个实例的所有条目都是如此?
-
为什么 1002 的活动超过关闭?这里的逻辑是什么?
-
并非所有第一个实例都将具有“活动”(即 1002 第一个实例可以关闭,第二个实例活动,第三个实例活动)但我只想要第一个实例,因为那是最近的一个。基本上 DF2 来自一个按最新到最旧排序的数据集,但没有日期。
-
@ScottBoston 看到我上面的评论。基本上 DF2 来自一个 2 列数据集,该数据集仅包含研究 # 和研究状态(活动或关闭)。第一个实例是最近的状态。没有日期是愚蠢的,或者在状态更新时没有删除先前的实例,但我无法控制。只是一般日志
-
@slicedorange7 如果对您有帮助,请批准以下解决方案:)