【发布时间】:2021-01-17 01:56:23
【问题描述】:
我有一个凌乱的数据框,我试图在其中“标记”ids 列中包含特定数字的行。此列中的值表示一个包含范围:例如,“第 4 行”包含以下数字:
2409,2410,2411,2412,2413,2414,2377,2378,1478,1479,1480,1481,1482,1483,1484
在“第0行”和“第1行”其中一组的范围向后 (1931,1930,1929)
例如,如果我想知道哪些行的集合包含“2340”和“1930”,我该怎么做?我认为需要一个循环,有时需要查询的不仅仅是两个数字。使用 Python 3.8。
示例数据框
x = ['1331:1332,1552:1551,1931:1928,1965:1973,1831:1811,1927:1920',
'1331:1332,1552:1551,1931:1929,180:178,1966:1973,1831:1811,1927:1920',
'2340:2341,1142:1143,1594:1593,1597:1596,1310,1311',
'2339:2341,1142:1143,1594:1593,1597:1596,1310:1318,1977:1974',
'2409:2414,2377:2378,1478:1484',
'2474:2476',
]
y = [6.48,7.02,7.02,6.55,5.99,6.39,]
df = pd.DataFrame(list(zip(x, y)), columns =['ids', 'val'])
display(df)
【问题讨论】:
-
您可以使用 apply 或 values 进行搜索
-
对于每一行,您是在寻找 True 还是 False?如果找到这两个值,则为真?
-
在这一行中,
'2340:2341,1142:1143,1594:1593,1597:1596,1310,1311',最后一个格式不同。这是正确的还是应该是:
标签: python-3.x pandas range