繁体   English   中英

根据 pandas、python 中该行中的最大值将列名添加到行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM