查找pandas DataFrame值的索引

时间:2014-10-01 20:37:35

标签: python python-2.7 pandas

我正在尝试使用熊猫来处理一些.csv数据,我正在努力解决一些我确信是新手的事情,但是在花了很多时间尝试完成这项工作后,我需要你的帮助。

基本上,我试图在我创建的数据帧中找到值的索引。

max = cd_gross_revenue.max()
#max value of the cd_gross_revenue dataframe

print max
#finds max value, no problem!

maxindex = cd_gross_revenue.idxmax()
print maxindex
#finds index of max_value, what I wanted!

print max.index
#ERROR: AttributeError: 'numpy.float64' object has no attribute 'index'

maxindex变量使用idxmax()获得答案,但是如果我没有查找最大值的索引怎么办?如果是我正在查看的某个随机值索引怎么办,我该怎么办呢?很明显.index对我来说不起作用。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

使用boolean mask获取值等于随机变量的行。 然后使用该掩码索引数据帧或系列。 然后,您将使用pandas数据帧或系列的.index字段。一个例子是:

In [9]: s = pd.Series(range(10,20))

In [10]: s
Out[10]:

0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64

In [11]: val_mask = s == 13

In [12]: val_mask

Out[12]:
0    False
1    False
2    False
3     True
4    False
5    False
6    False
7    False
8    False
9    False
dtype: bool

In [15]: s[val_mask]
Out[15]:
3    13
dtype: int64

In [16]: s[val_mask].index
Out[16]: Int64Index([3], dtype='int64')

答案 1 :(得分:3)

s[s==13]

例如,

from pandas import Series

s = Series(range(10,20))
s[s==13]

3    13
dtype: int64

答案 2 :(得分:0)

当你调用idxmax时,它返回索引中与最大值相对应的键。您需要将该密钥传递给数据帧才能获得该值。

max_key = cd_gross_revenue.idxmax()
max_value = cd_gross_revenue.loc[max_key]