【发布时间】:2019-10-27 13:13:31
【问题描述】:
我有以下有序数据框,它在文本文件中具有特定行的位置
数据:
index position
0 125
1 256
2 314
3 355
4 549
5 601
6 654
7 727
8 1100
9 1217
我有另一个数据框,其中包含消息 msg1 、 msg2 和 msg3 以及它们在文本文件中的位置,并且可以有多个实例。这些消息表示如何对数据进行分组
消息:
index position message
0 210 msg1
1 313 msg2
2 525 msg3
3 575 msg2
4 632 msg1
5 731 msg3
条件
a) 如果该行在第一次遇到消息之前(不一定是 msg1 ,由位置标识),那么该行将被归类为 A 级
b) 如果该行在最后一条消息之后(不一定是 msg3,由位置标识),那么该行将被分类为:
a) if msg1 is last: grade A1
b) if msg2 is last: grade A2
c) if msg3 is last: grade A3
c) 如果该行位于两条消息之间,即 msg[i] 的开头和 msg[j] 的结尾,则该行将被归类为 'grade A' + str(i)
我尝试了 if else 语句,但未能正确实现。任何更简单的方法来做到这一点,而无需对消息帧中的位置进行任何硬编码,我们将不胜感激。
预期输出是熊猫系列/数据框或根据条件分组的行列表
index position group
0 125 grade A
1 256 grade A1
2 314 grade A2
3 355 grade A2
4 549 grade A3
5 601 grade A2
6 654 grade A1
7 727 grade A1
8 1100 grade A3
9 1217 grade A3
【问题讨论】:
-
你的预期\输出是什么?
-
我已经更新了问题,并显示了预期的输出
标签: python pandas list indexing