gpt4 book ai didi

python - Pandas 多索引数据框中各组之间的计算

转载 作者:太空狗 更新时间:2023-10-30 02:58:42 25 4
gpt4 key购买 nike

假设我生成一个多索引数据框如下:

arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
df = pd.DataFrame(np.random.randn(8, 4), index=arrays)

0 1 2 3
bar one -0.155088 -0.177214 -0.761230 -0.106045
two 1.930298 -0.309573 -0.051878 -0.388760
baz one 0.111287 1.374426 0.408575 1.555659
two -0.809201 -0.168658 0.055037 1.871289
foo one 0.286833 -0.988538 0.918153 0.841016
two 0.348741 0.403747 0.584992 -1.838409
qux one 1.212017 -0.224872 0.616604 1.080590
two 0.494800 -0.089214 0.829222 2.005217

如何创建一个新列,即组“一”和“二”之间在其 #3 列值上的比率(例如,第一个元素为 -0.106045/-0.388760)?

如何结合当前数据框显示它?

最佳答案

具有不同的随机数。使用 transform :

In [11]: df.groupby(level=0)[3].transform(lambda x: x[0]/ x[1])
Out[11]:
bar one -1.391651
two -1.391651
baz one -1.688734
two -1.688734
foo one -1.128344
two -1.128344
qux one -2.170493
two -2.170493
Name: 3, dtype: float64

要显示它,将其设置为一列:

In [12]: df["ratio"] = df.groupby(level=0)[3].transform(lambda x: x[0]/ x[1])

关于python - Pandas 多索引数据框中各组之间的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33292944/

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