在pandas数据框中添加具有匹配值的新列

问题描述

我有这个数据框,我正在尝试添加具有特定操作的事件时间的新列。

df = pd.read_csv("https://testme162.s3.amazonaws.com/run_terminate.csv")

df["_source_responseElements_instancesSet_items_instanceId"].value_counts()

i-0e1a1af5e49146950    2
i-03222a9b4df03882c    2
i-00b0e46026d56c6b6    2
i-06e3be34cdbac3c36    2
i-096dbc191934d6698    2
i-08b7f1ffece17a188    2
i-004785d32e1392117    2
i-06421f5f460be8b3a    2

一个名为“ _source_eventName”的列,其中包含2个重要值。 RunInstances TerminateInstances 。我试图在实例终止时添加带有日期时间的新列。在sql中,我会自行加入instance_id列上的表,并返回不匹配的event_names。

解决方法

这就是我达到预期结果的方式。

df.join(
    df.groupby("_source_responseElements_instancesSet_items_instanceId")[
        "_source_responseElements_instancesSet_items_instanceId","_source_eventTime"
    ].transform(max),lsuffix="_left",rsuffix="_right",)

我不确定这是否是pythonic方式!