满足条件时,将一个数据帧的行追加到下一个数据帧

时间:2019-07-01 17:54:45

标签: python pandas

我想在值更改之前确定重复值列中的最后一个条目,并将该条目的整个行传递给新数据框。

df1[location]重复多行,然后再更改到新的重复位置。我只需要位置x的最后一行,然后将其更改为位置y并将该行传递到df2,然后重复位置y等。

我有一个for循环,用于标识位置x的最后一个条目,但需要一种将与该条目相关联的行附加到新数据帧的方法

prev_loc = None
for loc in df1['location']
    if loc == prev_loc:
        pass
    else:
        #????
    prev_loc = loc

df2具有与df1相同的列结构,只是与给定位置的最后一个条目相对应的行的子集。

1 个答案:

答案 0 :(得分:0)

让我们输入以下数据框:

    c1   c2   c3
0  120  215  393
1  120  218  396
2  120  213  399
3  130  366  301
4  130  144  302
5  130  208  303

它包含2个具有相同 c1 的组(120和130)。

要从每个组中获得最后一行,请运行:

df.groupby('c1').last().reset_index()

结果是:

    c1   c2   c3
0  120  213  399
1  130  208  303

另一种解决方案,如果您还需要最后一行的键:

df.groupby('c1').tail(1)

这一次您将获得:

    c1   c2   c3
2  120  213  399
5  130  208  303