python - 满足条件时将行从一个数据帧附加到下一个数据帧
问题描述
我想在值更改之前识别一列重复值中的最后一个条目,并将该条目的整行传递给新的数据框。
df1[location]
在更改到新的重复位置之前重复多行。在位置 x 更改为位置 y 并将该行传递给 之前,我只需要位置 x 的最后一行df2
,然后对位置 y 重复,依此类推。
我有一个 for 循环来识别位置 x 的最后一个条目,但需要一种方法将与所述条目关联的行附加到新数据帧
prev_loc = None
for loc in df1['location']
if loc == prev_loc:
pass
else:
#????
prev_loc = loc
df2
将具有相同的列结构,df1
只有与给定位置的最后一个条目对应的行子集。
解决方案
让我们采用以下输入 DataFrame:
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
推荐阅读
- angular - 在角度重新分配变量时获取空/未定义
- laravel - 无法从 Compute Engine 实例连接到谷歌云 SQL
- linux - 在没有日期功能的bash中将数字日期转换为字母日期
- java - 如何决定何时更新、删除和插入
- c# - 无法恢复 Nuget 包
- javascript - ReactJS - 无限循环调用包装方法
- javascript - 无法使用 express.js 完成获取请求?
- ms-access - MS-Access 根据表单中的值查找和更新记录
- asp.net - .NET CORE 2.1 构造函数要求 IConfiguration
- javascript - 正则表达式:获取惰性字符串