如何在Pandas DataFrame中自动获取指定列满足数值条件的行号
Pandas筛选指定条件行并获取行号
先构造你提供的示例DataFrame:
import pandas as pd df = pd.DataFrame({ 'one': [1, 2, 1, 10, 2, 0, -10], 'two': [3, 4, 3, 3, 4, 3, 3], 'three': [4, 6, 4, 4, 5, 4, 4] })
1. 筛选one列数值大于9的行号
通过布尔索引过滤DataFrame,直接提取符合条件的默认索引(从0开始):
# 获取默认索引的行号列表 rows_gt_9 = df[df['one'] > 9].index.tolist() print(rows_gt_9) # 输出: [3]
如果需要对应示例中从1开始的行号(即第4行),可以对索引做加1转换:
rows_gt_9_1based = [idx + 1 for idx in rows_gt_9] print(rows_gt_9_1based) # 输出: [4]
2. 筛选one列绝对值大于9的行号
利用abs()方法计算列的绝对值后,再进行布尔过滤:
# 获取默认索引的行号列表 rows_abs_gt_9 = df[df['one'].abs() > 9].index.tolist() print(rows_abs_gt_9) # 输出: [3, 6]
同样转换为从1开始的行号:
rows_abs_gt_9_1based = [idx + 1 for idx in rows_abs_gt_9] print(rows_abs_gt_9_1based) # 输出: [4, 7]
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

