我有以下 Excel 电子表格:
我需要识别并创建每个代码的列表,其中有一个不直接遵循原始序列的 ID(在本例中,ABC 是由于 ABC4,BCD 是由于 BCD5),无论它在表中的位置如何谎言。初始 ID 将按顺序排列。当代码更新时(在该表之外的某个地方),该表将生成一个新行,从而产生一个不连续的 ID 号。
这是我迄今为止所做的头脑 Storm :
- 我创建了一个字典,并使用表中的每个 CODE 作为键,使用每个 ID 的列表作为其值。
- 创建某种 IF 语句来检查第一个值 + 1 是否等于第二个值。如果为 false,则将代码保存在新列表中。
我的思维过程是否走在正确的轨道上?我仍在努力确定 If/Else、While 和 For 循环何时最合适。提前谢谢大家。
最佳答案
让我们尝试 groupby
+ filter
,请注意,因为您使用 pandas
尝试不使用 for 循环
out = df.groupby('CODE').filter(lambda x : x['ID'].diff().dropna().ne(1).any())['CODE'].unique()
Out[239]: array(['ABC', 'BCD'], dtype=object)
关于python - 识别 Pandas 中的非连续行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69137900/