以下是我想做的操作类型的简单玩具示例。
假设我有两个 PandasDataFrame
和df0
,df1
如下所示:
In [2]: df0
Out[2]:
A B C
0 v 67 7
1 u 30 8
2 v 71 9
3 u 31 1
4 u 27 1
5 v 60 7
6 v 78 9
7 u 41 7
In [3]: df1
Out[3]:
A B
0 u 20
1 v 10
请注意, 的所有列df1
都在df0
. 另请注意, 中的值df1['A']
是唯一的,实际上它们代表 中出现(带有重复)的所有值df0['A']
。
我想df1['B']
从df0['B']
原地减去,通过根据列的值广播 成正确的形状。(最终结果从其字段中所有行的字段中减去;同样,从其字段中所有行的字段中减去)。df0['B']
A
20
B
df0
u
A
10
B
df0
v
A
目标是最终df0
看起来如下所示:
In [4]: df0
Out[4]:
A B C
0 v 57 7
1 u 10 8
2 v 61 9
3 u 11 1
4 u 7 1
5 v 50 7
6 v 68 9
7 u 21 7
正如我一开始所说,这只是一个玩具示例。我有兴趣使用更多的操作来进行这种键限制更新,而不仅仅是减法。
用 Pandas 做这种事情的最简单方法是什么?