![](/img/trans.png)
[英]Python Pandas Dataframe calculating new row value based on previous row value within same column
[英]Add column name to row based on max value within that row in pandas, python
我有 FEMA 洪水风险 2.0 数据的 dataframe。 每列名称表示房主每月的洪水保险保费将发生多少变化。 每行包含一个float
,表示该 Zip 代码中的房屋百分比将根据相应的列名称调整其保费。 像这样:
Col1 Col2 Col3 Col4
Zip Code < -$100 -$100 to -$90 -$90 to -$80
33010 .0194 .0036 .0040
33138 .0568 .0082 .0109
33141 .0101 .0008 .0019
我想添加一列,其中每行包含每行具有最高值的列的名称。 我的 output 应该是:
Col1 Col2 Col3 Col4 Col5
Zip Code < -$100 -$100 to -$90 -$90 to -$80 common_price_change
33010 .0194 .0036 .0040 <-$100
33138 .0568 .1082 .0109 -$100 to -$90
33141 .0101 .0008 .0319 -$90 to -$80
你可以使用df.idxmax()
方法来得到你想要的。
这是一个例子:
import pandas as pd
df = pd.DataFrame({'zip_code':['zip1','zip2','zip3'],
'col1':[0,1,3],
'col2':[3,2,1],
'col3':[4,0,2]
})
df['max_col'] = df[['col1','col2','col3']].idxmax(axis=1)
df
max_col
使用idxmax
来获取具有最高值的列名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.