我有两个pandas数据帧,格式如下:
df_ts = pd.DataFrame([
[10, 20, 1, 'id1'],
[11, 22, 5, 'id1'],
[20, 54, 5, 'id2'],
[22, 53, 7, 'id2'],
[15, 24, 8, 'id1'],
[16, 25, 10, 'id1']
], columns = ['x', 'y', 'ts', 'id'])
df_statechange = pd.DataFrame([
['id1', 2, 'ok'],
['id2', 4, 'not ok'],
['id1', 9, 'not ok']
], columns = ['id', 'ts', 'state'])
我正在尝试将其转换为格式,例如:
^{pr2}$我了解如何通过按id分组,然后遍历每一行并在它出现时更改状态来迭代完成它。有没有一个大熊猫可以用更具伸缩性的方式来做这个?在
不幸的是熊猫合并只支持平等加入。在以下线程中查看更多详细信息: merge pandas dataframes where one value is between two others 如果要按间隔合并,则需要克服此问题,例如在合并后添加另一个筛选器:
可以在两列上合并pandas数据帧:
在您在这里共享的
^{pr2}$df_statechange
中,两个数据帧中的ts没有公共值。显然你只是复制了不完整的数据框。所以我得到了这个输出:但实际上,如果在数据帧中有公共的
^{3}$ts
,那么它将有您想要的输出。例如:输出:
相关问题 更多 >
编程相关推荐