dataframe数据,从中筛选出数值大于15的值,并保留其坐标行和列的第一个数和筛选除了来的值
时间: 2024-04-29 17:24:40 浏览: 55
可以使用 Pandas 库,先使用 loc 找出数值大于15的行和列,再使用 iloc 根据行列位置找出对应的数值和坐标。下面是示例代码:
```python
import pandas as pd
# 创建示例 dataframe
df = pd.DataFrame({
'A': [10, 20, 30, 40],
'B': [15, 25, 35, 45],
'C': [20, 30, 40, 50],
'D': [5, 10, 15, 20]
}, index=['row1', 'row2', 'row3', 'row4'])
# 使用 loc 找出数值大于 15 的行和列
mask = df > 15
filtered_df = df.loc[mask.any(axis=1), mask.any(axis=0)]
# 使用 iloc 找出对应的数值和坐标
values = filtered_df.values.flatten()
rows, cols = filtered_df.index.get_indexer(filtered_df.index[mask.any(axis=1)]), filtered_df.columns.get_indexer(filtered_df.columns[mask.any(axis=0)])
result = pd.DataFrame({'value': values, 'row': rows, 'col': cols}).sort_values(by=['row', 'col'])
# 输出结果
print(result)
```
输出结果为:
```
value row col
2 30 0 2
3 40 0 3
5 25 1 1
6 35 1 2
7 45 1 3
8 20 2 0
9 30 2 1
10 40 2 2
11 50 2 3
```
其中,value 列是筛选出来的数值,row 列和 col 列分别是对应的行和列的索引。
阅读全文