如何根据索引统计替换数据帧值

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

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

l1 = [1,2,3,4,5,6,7,8,9,10]
l2 = [11,12,13,14,15,16,17,18,19,20]
index = ['FORD','GM']
df = pd.DataFrame(l1,l2).reset_index().T
df.index = index

我想基于此替换这些整数值:

对于每个索引,如果值小于mean-2,则为“MINI”,否则为“MEGA”。 这里每一行的平均值都不同。

所需的输出如下所示:

有人可以帮我吗?

python pandas dataframe statistics
1个回答
0
投票

一个可能的选择:

vals = {True: "MINI", False: "MEGA"}

out = df.lt(df.mean(axis=1).sub(2), axis=0).replace(vals)

输出:

print(out)

         0     1     2     3     4     5     6     7     8     9
FORD  MINI  MINI  MINI  MEGA  MEGA  MEGA  MEGA  MEGA  MEGA  MEGA
GM    MINI  MINI  MINI  MEGA  MEGA  MEGA  MEGA  MEGA  MEGA  MEGA

[2 rows x 10 columns]
© www.soinside.com 2019 - 2024. All rights reserved.