python - 计算派生列
问题描述
我有一个包含以下字段的数据集
01/09/2019 02/08/2019 7
01/09/2019 03/08/2019 1189
01/09/2019 04/08/2019 8
01/09/2019 04/08/2019 1650
01/09/2019 05/08/2019 9
01/09/2019 05/08/2019 1805
01/09/2019 06/08/2019 63
01/09/2019 06/08/2019 2
01/09/2019 07/08/2019 1985
02/09/2019 01/09/2019 886
02/09/2019 01/09/2019 1980
02/09/2019 03/08/2019 3
02/09/2019 03/08/2019 4
02/09/2019 04/08/2019 138
02/09/2019 04/08/2019 8
02/09/2019 05/08/2019 259
03/09/2019 01/09/2019 829
03/09/2019 01/09/2019 509
03/09/2019 02/09/2019 1884
03/09/2019 04/08/2019 6
03/09/2019 04/08/2019 2
03/09/2019 05/08/2019 4
03/09/2019 05/08/2019 161
我想计算一个列 t_A,它是 17500 - date_1 的 C_B 等等。
编辑 例如:
Date_1 Date_2 C_B t_A
01/09/2019 02/08/2019 7 (17500-7) = 17493
01/09/2019 03/08/2019 1189 (17493-1189) = 16304
01/09/2019 04/08/2019 8 (16304 - 8) = 16296
.
.
.
02/09/2019 01/09/2019 886 (17500 - 886) = 16614
02/09/2019 01/09/2019 1980 (16614 - 1980) = 14634
.
任何人都可以说出实现相同目标的方法。
谢谢
解决方案
使用pandas.Series.cumsum
:
df['t_A'] = 17500 - df['C_B'].cumsum()
print(df)
输出:
I_Code Date_1 Date_2 C_B t_A
0 4 01/09/2019 02/08/2019 7 17493
1 4 01/09/2019 03/08/2019 1189 16304
2 1 01/09/2019 04/08/2019 8 16296
3 4 01/09/2019 04/08/2019 1650 14646
4 1 01/09/2019 05/08/2019 9 14637
5 4 01/09/2019 05/08/2019 1805 12832
6 1 01/09/2019 06/08/2019 63 12769
7 2 01/09/2019 06/08/2019 2 12767
8 4 01/09/2019 07/08/2019 1985 10782
9 1 01/09/2019 08/08/2019 869 9913
10 2 01/09/2019 08/08/2019 6 9907
11 4 01/09/2019 08/08/2019 2072 7835
12 1 01/09/2019 09/08/2019 790 7045
13 4 01/09/2019 09/08/2019 2120 4925
14 1 01/09/2019 10/08/2019 1275 3650
15 1 01/09/2019 11/08/2019 1355 2295
16 4 01/09/2019 11/08/2019 2249 46
推荐阅读
- c++ - WG21 不使用引用限定符的理由
- python-3.x - 使用 multiprocessing.pool.Pool.starmap 获取“无法腌制 _thread.RLock 对象”
- python - 如何使用主键插入数据库?
- typescript - 为回调函数定义泛型类型的打字稿
- javascript - 为什么使用 .contain 方法在节点内未识别 svg?
- python - 在 Flask 中,有没有办法在每个视图之前运行一些代码?
- sql-server - 使用 FOR XML 格式化 SQL Server
- python - dataframe.idxmax() - 前 N 次出现
- c# - 如何在 ASP.NET Core 中使用 XML 架构反序列化自定义 Claim.ValueType
- android-studio - 启动 Studio 时出错 - JAVA_HOME - 无法创建 JVM.JVM 路径