Pandas DataFrame在B列中提取与A列中的Max相关的值

时间:2018-03-05 04:02:40

标签: python pandas dataframe

这里有一个相对较新的Python脚本编写器,其中包含有关Pandas和DataFrames的快速问题。在Python中可能有一种更简单的方法来做我正在做的事情(在Pandas之外),所以我对所有建议持开放态度。

我有一个大型数据集(不是我们所有人),拥有数十个属性和数万个条目。我已成功打开它(.csv文件)并删除了练习中不必要的列,以及我从其他问题中学到的使用过的熊猫技术,以便将表格放在我可以使用的东西上

作为一个例子,我现在有数据帧idxmax,有三列--A,B和C.我需要找到A的最大值索引,然后在该索引处拉出B和C的值。根据对最佳方法的研究,似乎MaxIDX = df['A'].idxmax() 是最佳选择。

at

这给了我正确的答案,但是当我尝试使用基于此变量的idxmax获取值时,我收到错误。我相信这是因为variable = df.at[MaxIDX, 'B'] 产生一个系列,而不是整数输出。

at

所以我的问题有两个部分。

如何将系列转换为+-----------+------------+---------------+--------+ | playerID | AA | BB | CC | +-----------+------------+---------------+--------+ | Adam | 5 | 2 | 10 | | Josh | 12 | 3 | 10 | | Sam | 8 | 5 | 15 | | Adam | 2 | 5 | 25 | | Sam | 4 | 4 | 5 | | Josh | 10 | 3 | 6 | | Adam| 4 | 2 | 7 | +-----------+------------+---------------+--------+ 的正确输入?并且,有一种更简单的方法可以做到这一点,我完全失踪了吗?我想做的就是得到A列最大值的索引,然后在该索引处拉出B列和C列的值。

感谢任何帮助。谢谢你!干杯!

注意: 使用:Python 3.6.4和Pandas 0.22.0

1 个答案:

答案 0 :(得分:0)

df.at[df.A.idxmax(), 'B']
1.8675579901499675

你声称失败了,似乎对我有用:

loc

虽然根据您的解释,您可能需要at,而不是df.loc[df.A.idxmax(), ['B', 'C']] B 1.867558 C -0.977278 Name: 1, dtype: float64

.mob-Logo {
  display: none;
}

@media only screen and (max-width: 767px) {
  .desk-Logo {
    display: none;
  }
  .mob-Logo {
    display: block;
  }
}

注意:您可能想要检查索引是否包含重复条目。这是失败的一个可能原因。