python - 如何获得系列中最小值的索引?
问题描述
我的 DataFrame 包含 4 列:City、District、Area 和 Price,其中 Area 是 float64,Price 是 int64。
price_min = df['Price'].min()
# area_min = df['Area'].iloc[np.nanargmin(df['Price'])]
# city_min = df['City'].iloc[np.nanargmin(df['Price'])]
area_min = df['Area'].iloc[df['Price'].idxmin()]
city_min = df['City'].iloc[df['Price'].idxmin()]
print(
f"If you are looking for a cheap accommodation, "
f"a {area_min} m² apartment for {price_min} PLN is available in {city_min}"
)
注释行确实有效。但是下面的行会导致错误:
result = values.argmin(axis)
TypeError: argmin() takes 1 positional argument but 2 were given
为什么它不起作用?
解决方案
使用DataFrame.loc
, becauseDataFrame.iloc
用于按位置选择,而不是按标签:
df = pd.DataFrame({
'City':list('abcdef'),
'District':list('GHIJKL'),
'Area':[7,8,9,4,2,3],
'Price':[271,34,55,74,10,120],
})
print (df)
City District Area Price
0 a G 7 271
1 b H 8 34
2 c I 9 55
3 d J 4 74
4 e K 2 10
5 f L 3 120
#for default index values
df = df.reset_index(drop=True)
price_min = df['Price'].min()
area_min = df.loc[df['Price'].idxmin(), 'Area']
city_min = df.loc[df['Price'].idxmin(), 'City']
print(
f"If you are looking for a cheap accommodation, "
f"a {area_min} m² apartment for {price_min} PLN is available in {city_min}"
)
If you are looking for a cheap accommodation, a 2 m² apartment for 10 PLN is available in e
推荐阅读
- xml - 在输出中的元素上显式显示默认命名空间
- javascript - 如何在特定时间后加载画布数组?
- c# - How to know when user doesn't click anymore on a button WPF
- java - 我是 kotlin 的新手,任何人都可以帮助如何在函数之外 println(originalList[i])
- javascript - Reading WSDL and printing the web methods in javascript
- php - 合并两个关联数组,其中第二个数组有更多键 php?
- delphi - HTTPRIO Delphi SOAP 服务器错误 'expects "text/xml"'
- ionic3 - Getting HttpErrorResponse in ionic3 for success response
- r - Problems with SVD of a large matrix using bigmemory and irlba
- mysql - mysqld 状态显示已停止但它实际上运行