我想删除在df中包含连续数字的行,并且在末尾包含0,例如12340或45670
rows_to_remove = []
for i, row in df.iterrows():
digits = [int(d) for d in str(row['prix'])]
if all([digits[j+1]-digits[j] == 1 for j in range(len(digits)-1)]) and digits[-1] == 0:
rows_to_remove.append(i)
df = df.drop(rows_to_remove)
2条答案
按热度按时间agyaoht71#
你可以使用列表解析:
输出:
这是如何工作的:
输出:
可重现输入:
2位数字
如果您想保留2位数,例如
20
:或者:
输出:
使用的输入:
sg3maiej2#
如果我理解正确的话,你想过滤掉以
'0'
结尾的字符串化int(int是10的倍数),当去掉尾随的0时,长度为2+,是'123456789'
的子字符串?如果是这样的话,我相信这将是可行的:
您可以将逻辑拆分以使其更具可读性,并将字符串过滤器与
&
运算符一起使用:(也可能有方法使过滤更有效)