gpt4 book ai didi

三行数据帧的 Python Pandas 最不极端

转载 作者:行者123 更新时间:2023-11-28 22:39:42 24 4
gpt4 key购买 nike

我有 3 行 DataFrame,每行都存储在单独的变量中。我怎样才能创建一个新的 pandas DataFrame 以便它包含每个 columns 中最不极端的元素?

如果我有:

x:    
C2 CL2 ED ES RB2
1992-12-30 -200.145189 -36.711906 108.067018 NaN NaN

y:

C2 CL2 ED ES RB2
1992-12-30 -250.145189 -21.000000 107.067018 NaN NaN

z:

C2 CL2 ED ES RB2
1992-12-30 -249.145189 -31.711906 100.067018 NaN NaN

我想要回一些东西:

                    C2        CL2          ED  ES  RB2
1992-12-30 -200.145189 -21.000000 100.067018 NaN NaN

我可以用循环来做,但我希望有一个更优雅/更高效的解决方案,因为这在每行中的元素数量方面会变得很大。

谢谢

最佳答案

创建示例数据——三个单行DataFrames正负值,并使用pd.concat()合并计算:

import string
import pandas as pd

df = {}
for i in range(3):
df[i] = pd.DataFrame(data=np.random.uniform(-5, 5, size=10), index=list(string.ascii_uppercase)[:10]).transpose()
df = pd.concat(list(df.values()))

A B C D E F G \
0 -4.754784 1.193108 0.322375 -1.621932 -2.310099 1.710547 -4.272505
0 -1.806019 -3.790956 4.111070 -3.034269 0.607244 2.020302 -0.340587
0 -4.130075 3.218974 -3.791859 0.835340 -3.245390 1.738022 0.162090

H I J
0 0.315760 0.805558 -0.134248
0 -1.608740 2.932232 1.905336
0 1.423596 -4.437640 0.868514

将函数应用于返回与 min abs 值的 index 相关联的值的每一列,如下所示:

import numpy as np
df.apply(lambda x: x[(np.abs(x)).argmin()], raw=True)

A -1.806019
B 1.193108
C 0.322375
D 0.835340
E 0.607244
F 1.710547
G 0.162090
H 0.315760
I 0.805558
J -0.134248
dtype: float64

关于三行数据帧的 Python Pandas 最不极端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445184/

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