在Python DataFrame中查找最小值列和最小值列名称

Bartek Nowakowski

我有一个如下所示的矩阵,我需要从COL01-04列和该列的名称(不包括NaN)中再创建两个最小值最小的列:

In[1]: matrix
Out[1]: 
     ID    COL01  COL02   COL03    COL04
0  0001      NaN   1662    1583   1697.4
1  0002      NaN   1006    1476  1018.44
2  0003     1452   1487  2197.5  1516.27
3  0004      NaN   1554    2298  1585.62

像这样:

     ID    COL01  COL02   COL03    COL04  Min_val  Min_col
0  0001      NaN   1662    1583   1697.4     1583    COL03
1  0002      NaN   1006    1476  1018.44     1006    COL02
2  0003     1452   1487  2197.5  1516.27     1452    COL01
3  0004      NaN   1554    2298  1585.62     1554    COL02

我已经尝试过了

for i in range(0, len(matrix)):
    matrix['Min_val'] = matrix[['COL01', 'COL02', 'COL03', 'COL04']].min()

但是结果NaN无处不在,请键入numpy.float64

耶斯列尔

使用DataFrame.minDataFrame.idxminaxis=1每行的校验值:

c = ['COL01', 'COL02', 'COL03', 'COL04']
matrix[c] = matrix[c].apply(lambda x: pd.to_numeric(x, errors='coerce'))

matrix['Min_val'] = matrix[c].min(axis=1)
matrix['Min_col'] = matrix[c].idxmin(axis=1)

或对于新列使用DataFrame.assign

matrix = matrix.assign(Min_val = matrix[c].min(axis=1), Min_col=matrix[c].idxmin(axis=1))

print (matrix)
   ID   COL01  COL02   COL03    COL04  Min_val Min_col
0   1     NaN   1662  1583.0  1697.40   1583.0   COL03
1   2     NaN   1006  1476.0  1018.44   1006.0   COL02
2   3  1452.0   1487  2197.5  1516.27   1452.0   COL01
3   4     NaN   1554  2298.0  1585.62   1554.0   COL02

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在在O词典查找最小值(1)的时间的Python

Python中让人们在数列最小值最大值betweeen 2列

如何从Python-3的DataFrame中查找前N个最小值

通过Python在列表中的特定位置查找绝对最大值或最小值

元组对,使用python查找最小值

获取Python中数字列表中的立即最小值

在Python中查找列表的最小值,最大值

使用python查找CSV文件的每一列的最小值

在Python Pandas中查找ID的最小值,最大值和平均值

通过最小值和最大值快速过滤Python数组中的元素

在python中查找三列的最大值和最小值

Python中C类型整数的最大值和最小值

在Python中寻找最小值

在没有列表的python中查找最大值和最小值

在Python数组中连续查找最小值索引

Python数值微分和h的最小值

python-如何查找和视觉标记序列的局部最小值?

使用迭代查找最大值和最小值时的Python TypeError

Python数据框连续查找最小值和最大值之间的差异

如何从python中的boxplot获取最小值和最大值?

python在分组数据框时跨多个列获取最大值和最小值

在Python的列表模式中查找最小值和最大值

在python中,如何获取列的最小值并显示该行和其他列的其他值

在数据中查找最大值和最小值,并将True / False附加到对应的行-Python

在python中查找变化集的最小值和最大值的有效方法

Python:在嵌套字典中查找最小值

Python递归-在嵌套数组中查找最大值和最小值之和

python迭代查找字典中的最小值

使用Python的字典的最大值和最小值