[英]argmax() or idxmax() is not providing right index where the maximum value is located
我有一个子集数据框,正在尝试查找索引,其中在“音量”列中是最大音量。 在这种情况下,它应该是索引1428,但是使用argmax或idxmcx时它会给出1431
combine1
Out[381]:
folder fn volume
1428 SF_20141231 IF1501_20141231.csv 162.0000
1429 SF_20141231 IF1502_20141231.csv 4.0000
1430 SF_20141231 IF1503_20141231.csv 6.0000
1431 SF_20141231 IF1506_20141231.csv 7.0000
1432 SF_20141231 TF1503_20141231.csv 4.0000
1433 SF_20141231 TF1506_20141231.csv 0.0000
1434 SF_20141231 TF1509_20141231.csv 0.0000
我会用的地方
combine1['volume'].idxmax(axis=0)
Out[385]: 1431
combine1['volume'].argmax()
Out[386]: 1431
这两个都是不正确的。 如何解决这个问题?
@ user9240544,您需要使用to_numeric将列转换为float。 参见下面的模型:
您会注意到,如果删除行combine1['volume'] = pd.to_numeric(combine1['volume'])
您将得到'volume'作为字符串,这就是您得到的结果。
raw_data = {
'folder': ['SF_20141231','SF_20141231','SF_20141231','SF_20141231','SF_20141231','SF_20141231','SF_20141231'],
'fn': ['IF1501_20141231.csv','IF1502_20141231.csv','IF1503_20141231.csv','IF1506_20141231.csv','TF1503_20141231.csv','TF1506_20141231.csv','TF1509_20141231.csv'],
'volume': ['162.0000','4.0000','6.0000','7.0000','4.0000','0.0000','0.0000']}
combine1 = pd.DataFrame(raw_data,index=[1428,1429,1430,1431,1432,1433,1434])
combine1['volume'] = pd.to_numeric(combine1['volume'])
combine1['volume'].idxmax(axis=0)
combine1['volume'].argmax()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.