gpt4 book ai didi

python - 基于列名在 pandas 数据框的 lambda 表达式上使用 if else 语句

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:40 25 4
gpt4 key购买 nike

我有一个数据框 df,如下所示:

import pandas as pd
df = pd.DataFrame({'a':[78.78, 77.26], 'b':[94.47,94.06], 'c':[0.72, 0.71], 'd':[0.19, 0.29]})

对于列 abc 我想提取(到列表中)最小值,而对于列 d 我想获得最大值,即:

[77.26, 94.06, 0.71, 0.29]

我主要是想用 lambda 表达式来完成这件事

例如,要获取所有最小值,我可以:

df.apply(lambda x:x.min(), axis = 0)

我想到了类似的东西(当然是行不通的):

df_final.apply(lambda x:x.max() if x =='d' else x.min(), axis = 0)

我找到了 this question这是做类似的事情,虽然条件语句是基于每列的,而我想要我的 if else 语句基于列名。事情是 x 即可迭代对象不是列名。那么我如何根据列名应用 if else 条件和 lambda 函数?

最佳答案

使用numpy.where :

a = np.where(df.columns == 'd', df.max(), df.min()).tolist()
print (a)
[77.26, 94.06, 0.71, 0.29]

关于python - 基于列名在 pandas 数据框的 lambda 表达式上使用 if else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174757/

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