如何从Python中每行的特定值获取列名

问题描述 投票:0回答:1

我有一个看起来像这样的数据框:

listing_id  price_4 price_5 price_6 price_7 price_8 price_9 min_price
0   42729   173.0   170.0   158.0   140.0   150.0   150.0   140.0
1   23135   184.0   180.0   173.0   150.0   160.0   160.0   150.0
2   138216  141.0   141.0   141.0   148.0   101.0   100.0   100.0
3   164989  146.0   121.0   121.0   121.0   121.0   121.0   121.0
4   301034  144.0   141.0   72.0    53.0    53.0    100.0   53.0

您可以理解,min_price由每行的最小值填充。我想创建另一个将使用列名填充的列,该列的值最小。例如,对于第0行,该值应为price_7,对于第1行,该值也应为price_7,依此类推。如果可能的话,我很乐意在没有min_price列的情况下进行此操作(我就是为此创建的)。

谢谢!

python pandas dataframe rows min
1个回答
1
投票

用途:

df['new'] = df.filter(like='price').idxmin(axis=1)

或者如果希望所有列都没有第一个:

df['new'] = df.iloc[:, 1:].idxmin(axis=1)
© www.soinside.com 2019 - 2024. All rights reserved.