gpt4 book ai didi

python - 从 A 列中获取列名,然后将该列的值保存在新的 C 列中

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:09 24 4
gpt4 key购买 nike

我有一个看起来像这样的 pandas 数据框:(它基于图像分析并使用 3 种不同的算法及其置信度来猜测图像是什么)

p1    p1_conf   p2    p2_conf   p3       p3_conf
dog 0.45 cat 0.32 book 0.05
dog 0.01 book 0.9 table 0.5
...

最终目标是找到最佳预测(置信度最高的预测):即第一行是狗,第二行是书。

我使用以下代码找到最大置信度和具有最大置信度的列的名称:

df['max_conf'] = df[['p1_conf', 'p2_conf', 'p3_conf']].max(axis=1)
df['max_col'] = df[['p1_conf', 'p2_conf', 'p3_conf']].idxmax(axis=1)
df['pred_algorithm'] = df['max_col'].apply(lambda x: x.split('_')[0])

现在我的数据框看起来像这样:

p1    p1_conf   p2    p2_conf   p3       p3_conf   max_conf   pred_algorithm
dog 0.45 cat 0.32 book 0.05 0.45 p1
dog 0.01 book 0.9 table 0.5 0.9 p2
...

现在,我需要使用 pred_algorithm 列为每一行找到最佳预测。

我试过这个:

df['best_prediction'] = df[df['pred_algorithm']]

我收到以下错误:

ValueError: Wrong number of items passed 1691, placement implies 1

我怎样才能创建这个新专栏?

最佳答案

可以使用 lookup 从使用另一列值的列中选择值:

df['best_prediction'] = df.lookup(df.index, df['pred_algorithm'])

结果数据框:

p1  p1_conf p2   p2_conf p3   p3_conf max_conf pred_algorithm best_prediction
0 dog 0.45 cat 0.32 book 0.05 0.45 p1 dog
1 dog 0.01 book 0.90 table 0.50 0.90 p2 book

关于python - 从 A 列中获取列名,然后将该列的值保存在新的 C 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109362/

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