- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下数据框:
account_id contract_id 2020-12-01 00:00:00 2021-01-01 00:00:00 2021-02-01 00:00:00 2021-03-01 00:00:00 2021-04-01 00:00:00 2021-05-01 00:00:00 2021-06-01 00:00:00
0 1 A 200.0 0.0 0.0 0.0 0.0 0.0 0.0
1 1 B 300.0 300.0 0.0 0.0 0.0 0.0 0.0
2 1 C 0.0 0.0 0.0 400.0 400.0 400.0 400.0
3 2 K 100.0 100.0 100.0 0.0 0.0 0.0 0.0
4 2 F 0.0 0.0 50.0 50.0 50.0 50.0 50.0
我想要以下输出:
account_id contract_id total active_months 2020-12-01 00:00:00 2021-01-01 00:00:00 2021-02-01 00:00:00 2021-03-01 00:00:00 2021-04-01 00:00:00 2021-05-01 00:00:00 2021-06-01 00:00:00
0 1 A 200 1 200.0 0.0 0.0 0.0 0.0 0.0 0.0
1 1 B 600 2 300.0 300.0 0.0 0.0 0.0 0.0 0.0
2 1 C 1200 3 0.0 0.0 0.0 400.0 400.0 400.0 400.0
3 2 K 300 3 100.0 100.0 100.0 0.0 0.0 0.0 0.0
4 2 F 200 4 0.0 0.0 50.0 50.0 50.0 50.0 50.0
在此示例中,当前日期设置为“2021 年 5 月 1 日”。我想添加和计数(仅非零)从第三列到当前日期列的值。 total 列应显示总和,而 active_months 应显示基于当前日期集的非零值的计数。
{'account_id': {0: 1, 1: 1, 2: 1, 3: 2, 4: 2},
'contract_id': {0: 'A', 1: 'B', 2: 'C', 3: 'K', 4: 'F'},
datetime.datetime(2020, 12, 1, 0, 0): {0: 200.0,
1: 300.0,
2: 0.0,
3: 100.0,
4: 0.0},
datetime.datetime(2021, 1, 1, 0, 0): {0: 0.0,
1: 300.0,
2: 0.0,
3: 100.0,
4: 0.0},
datetime.datetime(2021, 2, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 0.0,
3: 100.0,
4: 50.0},
datetime.datetime(2021, 3, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0},
datetime.datetime(2021, 4, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0},
datetime.datetime(2021, 5, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0},
datetime.datetime(2021, 6, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0}}
这是输出的字典:
{'account_id': {0: 1, 1: 1, 2: 1, 3: 2, 4: 2},
'contract_id': {0: 'A', 1: 'B', 2: 'C', 3: 'K', 4: 'F'},
'total': {0: 200, 1: 600, 2: 1200, 3: 300, 4: 200},
'active_months': {0: 1, 1: 2, 2: 3, 3: 3, 4: 4},
datetime.datetime(2020, 12, 1, 0, 0): {0: 200.0,
1: 300.0,
2: 0.0,
3: 100.0,
4: 0.0},
datetime.datetime(2021, 1, 1, 0, 0): {0: 0.0,
1: 300.0,
2: 0.0,
3: 100.0,
4: 0.0},
datetime.datetime(2021, 2, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 0.0,
3: 100.0,
4: 50.0},
datetime.datetime(2021, 3, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0},
datetime.datetime(2021, 4, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0},
datetime.datetime(2021, 5, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0},
datetime.datetime(2021, 6, 1, 0, 0): {0: 0.0,
1: 0.0,
2: 400.0,
3: 0.0,
4: 50.0}}
最佳答案
我们可以使用 bool 索引过滤所需的列,然后计算并插入 total
和 active_months
df
中的列哪里total
通过将 axis=1
上的值相加来计算和 active_months
通过沿 axis=1
计算非零值来计算
m = pd.to_datetime(df.columns, errors='coerce') <= '1 May, 2021'
c = df.loc[:, m]
df.insert(2, 'total', c.sum(1))
df.insert(3, 'active_months', c.ne(0).sum(1))
>>> df
account_id contract_id total active_months 2020-12-01 00:00:00 2021-01-01 00:00:00 2021-02-01 00:00:00 2021-03-01 00:00:00 2021-04-01 00:00:00 2021-05-01 00:00:00 2021-06-01 00:00:00
0 1 A 200.0 1 200.0 0.0 0.0 0.0 0.0 0.0 0.0
1 1 B 600.0 2 300.0 300.0 0.0 0.0 0.0 0.0 0.0
2 1 C 1200.0 3 0.0 0.0 0.0 400.0 400.0 400.0 400.0
3 2 K 300.0 3 100.0 100.0 100.0 0.0 0.0 0.0 0.0
4 2 F 200.0 4 0.0 0.0 50.0 50.0 50.0 50.0 50.0
关于python - 根据当前日期添加和计算行的非零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67354885/
所以我得到了这个形状为 (31641600,2) 的 numpy 数组,其中有一些零值,如果不是很多的话。 我们称这个数组为 X。 正在做: print len(X) >>> 31641600 然后做
TL;DR:我有一个 IBOutlet ( UILabel ) 在 Storyboard 中正确连接。访问(展开)它在 viewDidLoad() 中工作正常...但几秒钟后它的值为零。一个观察点说,
我想用numpy数组进行非零cumsum。只需跳过数组中的零并应用 cumsum 即可。假设我有一个 np.数组 a = np.array([1,2,1,2,5,0,9,6,0,2,3,0]) 我的结
该代码运行,甚至产生预期的输出。但是,在构建日志中,我总是得到进程终止,状态为 2(0 分钟,5 秒) 或该日志的某些变体。 代码- #include #include void main() { p
我读了一些关于 TCP window scaling 的东西和 BDP (不太清楚),我无法弄清楚到底是什么原因导致发送方的 TCP 实现设置非零 WS,用户模式客户端程序是否会以某种方式影响它?我认
我有一个字典 { 'a': 'a', 'b': 0, 'c': {} } 我需要省略所有具有空值的键(0 是不被认为是空的)。所以,它的输出应该是 { 'a': 'a', 'b': 0 }。 对于 {
我想在 python 中的 pandas 数据帧上应用 cumsum,但没有零。只是我想保留零并在数据帧上执行 cumsum 。假设我有这样的数据框: import pandas as pd df =
我使用 getimagesize 函数获取图像的宽度和高度,如下所示: list($width,$height) = getimagesize($source_pic); 如何使用 IF 条件来检查
在 PHP 中(使用内置函数)我想用小数转换/格式化数字,以便只显示非零小数。但是,我的另一个要求是,如果它是一个没有十进制值的数字,我仍然希望显示为零。例子: 9.000 -> 9.0 9.100
我可以使用 df['TOTAL'] = df.sum(axis=1) 向此 DF 添加一个 TOTAL 列,它会像这样添加行元素: col1 col2 TOTAL 0 1.0 5.0
我正在玩 python 列表,我想在不使用列表时从内存中删除它。(我有大数据列表,可能有数千或数百万个元素..数据类型-> 浮点型) 我试过这段代码,看看删除在 python 中是如何工作的(示例)
我正在研究 Linux 设备驱动程序代码。我无法透露这段代码的具体用途。我会尽力解释我的情况。当我们收到 USB 中断,表明有来自 USB 的数据时,下面的代码将在中断上下文中执行。数据将以 URB
能力 manpage比较长,有些东西我没有完全理解。 例如,决定我们是否有权访问 CAP_NET_RAW 的函数看起来如何? 输入: a = 有效 uid 为 0 b = 有一些真实的/保存的/任何为
我正在创建一个测试用例,用于测试 TVIroom 类的委托(delegate)函数 didDisconnectwithError 是否可以被调用。为此,我需要向委托(delegate)函数传递一个空白
我想知道 numpy.nonzero/numpy.flatnonzero 返回的索引顺序。 我在文档中找不到任何关于它的内容。它只是说: A[nonzero(flag)] == A[flag] 虽然在
假设我有这样的数据框 id p1 p2 p3 p4 1 0 9 0 4 2 0 0 0 4 3 1 3 10 7 4 1 5 3
这个问题在这里已经有了答案: Division of integers in Java [duplicate] (7 个答案) 关闭 9 年前。 我有一个音量控制 slider 来控制 Androi
我们正在运行一个名为 Axe 的工具检查 HTML 页面的有效性和 508 合规性/可访问性。 此错误作为违规出现: Elements should not have tabindex greater
所以我有两个这样的模型 class ModelParent include Mongoid::Document field :name, :type => String has_one :
我是一名优秀的程序员,十分优秀!