gpt4 book ai didi

python - pandas 返回列名 对每一行应用函数

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:59 25 4
gpt4 key购买 nike

我正在研究 pandas 数据集。对于 2D 数据框,尝试返回/追加一列,该列返回值超过 0.95 的列名。

import pandas as pd
import numpy as np

Exp_day_list = ["EXP_DAY_1","EXP_DAY_2","EXP_DAY_3","EXP_DAY_4","EXP_DAY_5","EXP_DAY_6","EXP_DAY_7","EXP_DAY_8","EXP_DAY_9","EXP_DAY_10","EXP_GT_DAY_10"]


test = raw_databased.head()
Exp_day_percentage = test[Exp_day_list]


def over_95_percent(x):
for column in x:
if x[column] > 0.95:
return column
break
Exp_day_percentage.apply(over_95_percent,axis = 1)

我测试了 Exp_day_percentage,结果符合我的需要。

Exp_day_percentage
Out[2]:
EXP_DAY_1 EXP_DAY_2 EXP_DAY_3 EXP_DAY_4 EXP_DAY_5 EXP_DAY_6 \
0 0.0 0.0 0.52 0.94 0.94 1.0
1 0.0 0.0 0.00 0.66 1.00 1.0
2 0.0 1.0 1.00 1.00 1.00 1.0
3 0.0 0.0 0.92 1.00 1.00 1.0
4 0.0 0.0 0.95 0.97 1.00 1.0

EXP_DAY_7 EXP_DAY_8 EXP_DAY_9 EXP_DAY_10 EXP_GT_DAY_10
0 1.0 1.0 1.0 1.0 0.0
1 1.0 1.0 1.0 1.0 0.0
2 1.0 1.0 1.0 1.0 0.0
3 1.0 1.0 1.0 1.0 0.0
4 1.0 1.0 1.0 1.0 0.0

但是当我对该数据帧运行应用函数时,错误函数如下:

TypeError: ("cannot do label indexing on <class 'pandas.indexes.base.Index'>  
with these indexers [0.0] of <type 'numpy.float64'>", u'occurred at index 0')

理想的结果如下:

   EXP_DAY_1  EXP_DAY_2  EXP_DAY_3  EXP_DAY_4  EXP_DAY_5  EXP_DAY_6  \
0 0.0 0.0 0.52 0.94 0.94 1.0
1 0.0 0.0 0.00 0.66 1.00 1.0
2 0.0 1.0 1.00 1.00 1.00 1.0
3 0.0 0.0 0.92 1.00 1.00 1.0
4 0.0 0.0 0.95 0.97 1.00 1.0

EXP_DAY_7 EXP_DAY_8 EXP_DAY_9 EXP_DAY_10 EXP_GT_DAY_10 Column
0 1.0 1.0 1.0 1.0 0.0 EXP_DAY_5
1 1.0 1.0 1.0 1.0 0.0 EXP_DAY_5
2 1.0 1.0 1.0 1.0 0.0 EXP_DAY_2
3 1.0 1.0 1.0 1.0 0.0 EXP_DAY_4
4 1.0 1.0 1.0 1.0 0.0 EXP_DAY_3

如果有人能帮助我,我将非常感激。我搜索了所有互联网,但找不到类似的东西。谢谢你

最佳答案

使用pd.DataFrame.idxmax

df.assign(Column=df.gt(.95).assign(zip5=1).idxmax(1))

EXP_DAY_1 EXP_DAY_2 EXP_DAY_3 EXP_DAY_4 EXP_DAY_5 EXP_DAY_6 EXP_DAY_7 EXP_DAY_8 EXP_DAY_9 EXP_DAY_10 EXP_GT_DAY_10 Column
0 0.0 0.0 0.52 0.94 0.94 1.0 1.0 1.0 1.0 1.0 0.0 EXP_DAY_6
1 0.0 0.0 0.00 0.66 1.00 1.0 1.0 1.0 1.0 1.0 0.0 EXP_DAY_5
2 0.0 1.0 1.00 1.00 1.00 1.0 1.0 1.0 1.0 1.0 0.0 EXP_DAY_2
3 0.0 0.0 0.92 1.00 1.00 1.0 1.0 1.0 1.0 1.0 0.0 EXP_DAY_4
4 0.0 0.0 0.95 0.97 1.00 1.0 1.0 1.0 1.0 1.0 0.0 EXP_DAY_4

关于python - pandas 返回列名 对每一行应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47149317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com