我有两个数据框: A:20*15的数字矩阵 B:20*1个数字列表(从1-15)。
我想找到表 A 中每一行的最大数量,但是只查看表 B 中的列
下面的简化示例。
谢谢!
+-----------------+
| A: |
+-----------------+
| 7 3 5 4 |
| 8 1 2 5 |
| 2 3 7 2 |
| 4 1 3 6 |
+-----------------+
| B: |
+-----------------+
| 2 |
| 4 |
| 1 |
| 2 |
| Desired result: |
| 7 |
| 8 |
| 2 |
| 4 |
最佳答案
哪里
+ max
您想在每行的前 n
列中找到最大值,其中 n
来自您的第二个数据框。因此,屏蔽不重要的单元格,然后取最大值,因为 max
默认忽略 NaN
。
import numpy as np
m = np.arange(dfa.shape[1]) < dfb[0][:, None] # Thanks rafaelc
dfa.where(m).max(1)
#0 7.0
#1 8.0
#2 2.0
#3 4.0
#dtype: float64
示例数据:
dfa
0 1 2 3
0 7 3 5 4
1 8 1 2 5
2 2 3 7 2
3 4 1 3 6
dfb
0
0 2
1 4
2 1
3 2
关于python - 如何从动态列数中找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58560377/