使用 pandas 或 Python 中的 numpy 根据其他三列中的值填充第四列
Using pandas or numpy in Python fill a fourth column based on values in other three columns
假设我有一个数据集,三个变量 A、B 和 C 的 df。我想计算基于所有 A、B 和 C 的值的变量 D。D 变量只接受来自变量的输入C 但考虑到 A 中给定值级别的 B 中的值序列。
A B C D
1 10 10 390
1 11 7 383
1 12 5 378
1 13 12 366
1 14 16 350
2 50 22 378
2 51 4 374
2 52 9 365
2 53 27 338
2 54 36 302
3 100 81 319
3 101 54 265
3 102 2 263
3 103 11 252
3 104 15 237
变量D各行值的估计公式如下:
D1 = 400-C2
D2 = 400-C3-C2
D3 = 400-C4-C3-C2
D4 = 400-C5-C4-C3-C2
D5 = 400-C6-C5-C4-C3-C2
D6 = 400-C7
D7 = 400-C8-C7
D8 = 400-C9-C8-C7
D9 = 400-C10-C9-C8-C7
D10 = 400-C11-C10-C9-C8-C7
D11 = 400-C12
D12 = 400-C13-C12
D13 = 400-C14-C13-C12
D14 = 400-C15-C14-C13-C12
D15 = 400-C16-C15-C14-C13-C12
使用 cumsum
进行累加和,然后从 400
中减去结果序列。
>>> df['D'] = 400 - df.groupby('A')['C'].cumsum()
A B C D
0 1 10 10 390
1 1 11 7 383
2 1 12 5 378
3 1 13 12 366
4 1 14 16 350
5 2 50 22 378
6 2 51 4 374
7 2 52 9 365
8 2 53 27 338
9 2 54 36 302
10 3 100 81 319
11 3 101 54 265
12 3 102 2 263
13 3 103 11 252
14 3 104 15 237
假设我有一个数据集,三个变量 A、B 和 C 的 df。我想计算基于所有 A、B 和 C 的值的变量 D。D 变量只接受来自变量的输入C 但考虑到 A 中给定值级别的 B 中的值序列。
A B C D
1 10 10 390
1 11 7 383
1 12 5 378
1 13 12 366
1 14 16 350
2 50 22 378
2 51 4 374
2 52 9 365
2 53 27 338
2 54 36 302
3 100 81 319
3 101 54 265
3 102 2 263
3 103 11 252
3 104 15 237
变量D各行值的估计公式如下:
D1 = 400-C2
D2 = 400-C3-C2
D3 = 400-C4-C3-C2
D4 = 400-C5-C4-C3-C2
D5 = 400-C6-C5-C4-C3-C2
D6 = 400-C7
D7 = 400-C8-C7
D8 = 400-C9-C8-C7
D9 = 400-C10-C9-C8-C7
D10 = 400-C11-C10-C9-C8-C7
D11 = 400-C12
D12 = 400-C13-C12
D13 = 400-C14-C13-C12
D14 = 400-C15-C14-C13-C12
D15 = 400-C16-C15-C14-C13-C12
使用 cumsum
进行累加和,然后从 400
中减去结果序列。
>>> df['D'] = 400 - df.groupby('A')['C'].cumsum()
A B C D
0 1 10 10 390
1 1 11 7 383
2 1 12 5 378
3 1 13 12 366
4 1 14 16 350
5 2 50 22 378
6 2 51 4 374
7 2 52 9 365
8 2 53 27 338
9 2 54 36 302
10 3 100 81 319
11 3 101 54 265
12 3 102 2 263
13 3 103 11 252
14 3 104 15 237