gpt4 book ai didi

pandas - 如何从另一个数据帧中减去一个数据帧?

转载 作者:行者123 更新时间:2023-12-04 17:10:48 25 4
gpt4 key购买 nike

首先,让我设置舞台。

我从 pandas 开始数据框klmn ,看起来像这样:

In [15]: klmn
Out[15]:
K L M N
0 0 a -1.374201 35
1 0 b 1.415697 29
2 0 a 0.233841 18
3 0 b 1.550599 30
4 0 a -0.178370 63
5 0 b -1.235956 42
6 0 a 0.088046 2
7 0 b 0.074238 84
8 1 a 0.469924 44
9 1 b 1.231064 68
10 2 a -0.979462 73
11 2 b 0.322454 97

接下来我分了 klmn分成两个数据帧, klmn0klmn1 ,根据 'K' 列中的值:
In [16]: k0 = klmn.groupby(klmn['K'] == 0)
In [17]: klmn0, klmn1 = [klmn.ix[k0.indices[tf]] for tf in (True, False)]
In [18]: klmn0, klmn1
Out[18]:
( K L M N
0 0 a -1.374201 35
1 0 b 1.415697 29
2 0 a 0.233841 18
3 0 b 1.550599 30
4 0 a -0.178370 63
5 0 b -1.235956 42
6 0 a 0.088046 2
7 0 b 0.074238 84,
K L M N
8 1 a 0.469924 44
9 1 b 1.231064 68
10 2 a -0.979462 73
11 2 b 0.322454 97)

最后,我计算 M 的平均值栏目 klmn0 , 按 L 中的值分组柱子:
In [19]: m0 = klmn0.groupby('L')['M'].mean(); m0
Out[19]:
L
a -0.307671
b 0.451144
Name: M

现在,我的问题是, 我怎样才能减去 m0来自 M栏目klmn1子数据帧,尊重 L 中的值柱子? (我的意思是从 m0['a'] 中每一行的 M 列中减去 klmn1 ,其中在 'a' 列中具有 L ,对于 m0['b'] 也是如此。)

可以想象以一种替换 M 中的值的方式来执行此操作。 klmn1的栏目使用新值(从 m0 减去值后)。或者,人们可以想象以一种离开 klmn1 的方式来做这件事。不变,而是产生一个新的数据帧 klmn11带有更新的 M柱子。我对这两种方法都感兴趣。

最佳答案

如果您将 klmn1 数据帧的索引重置为 L 列的索引,那么您的数据帧将自动将索引与您从中减去的任何系列对齐:

In [1]: klmn1.set_index('L')['M'] - m0
Out[1]:
L
a 0.777595
a -0.671791
b 0.779920
b -0.128690
Name: M

关于pandas - 如何从另一个数据帧中减去一个数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946494/

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