我正在尝试使用熊猫来处理一些.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对我来说不起作用。
提前感谢您的帮助!
答案 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]