我有一个像这样的数据框:
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”。 这里每一行的平均值都不同。
有人可以帮我吗?
一个可能的选择:
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]