大熊猫:查找列名和值,每一行的最大值(和第二最大值)

亚历克西斯·埃格蒙特

我在输入中看起来像DF1(在下面生成的代码),并且在输出中看起来像DF2。

想法是为每一行查找该行中具有最高值的列名称,对应的值,以及该行中具有第二高值的列名称,以及其对应的值。

有没有简单的方法可以做到这一点?

import pandas as pd
DF1 = pd.DataFrame({'User' : pd.Series(["Line1","Line2","Line3", "Line4"], index=['1', '2','3','4']), 'Var1' : pd.Series([9,12,3,21], index=['1', '2','3','4']),'Var2' : pd.Series([8,16,3,2], index=['1', '2','3','4']),'Var3' : pd.Series([7,5,6,9], index=['1', '2','3','4']),'Var4' : pd.Series([10,13,20,20], index=['1', '2','3','4']),'Var5' : pd.Series([8,2,13,1], index=['1', '2','3','4']),'Var6' : pd.Series([4,4,7,11], index=['1', '2','3','4']),'Var7' : pd.Series([15,13,4,7], index=['1', '2','3','4'])})
DF1

DF2 = pd.DataFrame({'User' : pd.Series(["Line1","Line2","Line3", "Line4"], index=['1', '2','3','4']), 'Max1Name' : pd.Series(["Var7","Var2","Var4","Var1"], index=['1', '2','3','4']),'Max1Value' : pd.Series([15,16,20,21], index=['1', '2','3','4']),'Max2Name' : pd.Series(["Var4","Var4","Var5","Var4"], index=['1', '2','3','4']),'Max2Value' : pd.Series([10,13,13,20], index=['1', '2','3','4'])})
DF2
底漆

不知道这是否是最简单的方法,但是您可以执行以下操作:

def top(x):
    x.set_index('User', inplace=True)
    df = pd.DataFrame({'Max1Name':[],'Max2Name':[],'Max1Value':[],'Max2Value':[]})
    df.index.name='User'
    df.loc[x.index.values[0],['Max1Name', 'Max2Name']] = x.sum().nlargest(2).index.tolist()
    df.loc[x.index.values[0],['Max1Value', 'Max2Value']] = x.sum().nlargest(2).values
    return df

DF1.groupby('User').apply(top).reset_index(level=1, drop=True).reset_index()

产生所需的输出:

    User Max1Name  Max1Value Max2Name  Max2Value
0  Line1     Var7         15     Var4         10
1  Line2     Var2         16     Var4         13
2  Line3     Var4         20     Var5         13
3  Line4     Var1         21     Var4         20

但是,更简单的方法是:

DF1.groupby('User').apply(lambda x: x.set_index('User').sum().nlargest(2))

按用户排名前2:

    User       
Line1  Var7    15
       Var4    10
Line2  Var2    16
       Var4    13
Line3  Var4    20
       Var5    13
Line4  Var1    21
       Var4    20
dtype: int64

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫:查找列名和值,每一行的最大值(和第二最大值)

来自分类Dev

在 R 中为 DF 中的每一行找到最大的最大值和第二大的最大值

来自分类Dev

子集数据框,以便包含每一行的最大值和列名

来自分类常见问题

查找具有每一行最大值的列名

来自分类Dev

SQL Server中选择一行的最大值和最大值的列名作为两列

来自分类Dev

Pandas - 一列的最小值和最大值,直到每一行

来自分类Dev

找到每列的最大值和最小值,然后找到每一行的最大值和最小值

来自分类Dev

为多列的每一行选择最小值和最大值

来自分类Dev

如何在二维数组(矩阵)中查找每一行的最大值C#

来自分类Dev

R:在删除最小值和最大值之后,计算选定列中每一行的SD

来自分类Dev

在大熊猫数据框中提取具有最大值的行

来自分类Dev

在二维numpy数组的每一行中找到N个最大值

来自分类Dev

在2D数组C ++中查找每一行的最大值

来自分类Dev

在python数据框中的每一行中查找最大值

来自分类Dev

在Scala中的Spark数据帧的每一行中查找最大值

来自分类Dev

查找csv文件中每一行的最大值

来自分类Dev

当python的一行中有多个最大值时,在2-dim向量的每一行中查找最大值

来自分类Dev

R根据另一行找到每个组的最小值和最大值

来自分类Dev

提取行和列的最大值

来自分类Dev

数组第二列的最大值

来自分类Dev

熊猫的最大值和最小值

来自分类Dev

熊猫在行中的最大值,并用值和列名返回df

来自分类Dev

查找 pandas.DataFrame 中每个标签的每列的最小值和最大值

来自分类Dev

在熊猫列中查找最大值

来自分类Dev

查找函数的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

查找矩阵的最大值和最小值

Related 相关文章

  1. 1

    熊猫:查找列名和值,每一行的最大值(和第二最大值)

  2. 2

    在 R 中为 DF 中的每一行找到最大的最大值和第二大的最大值

  3. 3

    子集数据框,以便包含每一行的最大值和列名

  4. 4

    查找具有每一行最大值的列名

  5. 5

    SQL Server中选择一行的最大值和最大值的列名作为两列

  6. 6

    Pandas - 一列的最小值和最大值,直到每一行

  7. 7

    找到每列的最大值和最小值,然后找到每一行的最大值和最小值

  8. 8

    为多列的每一行选择最小值和最大值

  9. 9

    如何在二维数组(矩阵)中查找每一行的最大值C#

  10. 10

    R:在删除最小值和最大值之后,计算选定列中每一行的SD

  11. 11

    在大熊猫数据框中提取具有最大值的行

  12. 12

    在二维numpy数组的每一行中找到N个最大值

  13. 13

    在2D数组C ++中查找每一行的最大值

  14. 14

    在python数据框中的每一行中查找最大值

  15. 15

    在Scala中的Spark数据帧的每一行中查找最大值

  16. 16

    查找csv文件中每一行的最大值

  17. 17

    当python的一行中有多个最大值时,在2-dim向量的每一行中查找最大值

  18. 18

    R根据另一行找到每个组的最小值和最大值

  19. 19

    提取行和列的最大值

  20. 20

    数组第二列的最大值

  21. 21

    熊猫的最大值和最小值

  22. 22

    熊猫在行中的最大值,并用值和列名返回df

  23. 23

    查找 pandas.DataFrame 中每个标签的每列的最小值和最大值

  24. 24

    在熊猫列中查找最大值

  25. 25

    查找函数的最小值和最大值

  26. 26

    在.json中查找最大值和最小值

  27. 27

    awk查找数组的最小值和最大值

  28. 28

    在.json中查找最大值和最小值

  29. 29

    查找矩阵的最大值和最小值

热门标签

归档