在Pandas DataFrame中查找特定值并记录(行,列)索引对
高效提取DataFrame中小于0.12的值的行、列索引及对应值
直接用Pandas的向量化操作就能搞定,比手动遍历效率高得多,尤其是处理大数据集的时候,步骤如下:
筛选符合条件的值并整理结构
用布尔索引结合stack()方法,一次性提取所有小于0.12的值,同时保留它们的行、列索引:import pandas as pd # 假设你的原始DataFrame名为df filtered_series = df[df < 0.12].stack()转换成目标格式的DataFrame
将得到的Series重置索引,并重命名列名即可:result_df = filtered_series.reset_index() result_df.columns = ['Row', 'Col', 'Value'](可选)将行、列索引转为数字位置
如果你的DataFrame行/列索引不是数字,想要转换成从1开始的数字位置,用下面的代码:# 行位置从1开始计数 result_df['Row'] = df.index.get_indexer(result_df['Row']) + 1 # 列位置从1开始计数 result_df['Col'] = df.columns.get_indexer(result_df['Col']) + 1
最终得到的result_df就是你需要的格式,示例输出如下:
Row Col Value
4 2 0.105263
...
内容的提问来源于stack exchange,提问作者324
相关产品推荐
相关产品推荐

