- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建一个数据框
df = pd.DataFrame({"b": ['A','A','A','A','B', 'B','B','C','C','D','D', 'D','D','D','D','D','D','D','D','D'],"a": [-3,-4,2, -1, -3, -1,-7,-6, 1, 1, -1, 1,4,5,-3,2,3,4, -1, -2]})
检查负值
df['val'] = df.a < 0
添加一个累积计数总和列,其中当先前值不为负时计数器会增加。 (这意味着对于每个负值,计数器都会增加 1,但如果有多个 -ve 值,则假定它们是单个负值,并且计数器仍会增加 1)
df['val_1'] = (((df['val']) & (df['val'] != df['val'].shift())).cumsum()). the table is as below
b a val val_1
0 A -3 True 1
1 A -4 True 1
2 A 2 False 1
3 A -1 True 2
4 B -3 True 2
5 B -1 True 2
6 B -7 True 2
7 C -6 True 2
8 C 1 False 2
...
我想重新开始计算“b”字段中的新值。计数器应从值“B”开始。这方面的任何意见都会有帮助
最佳答案
您可以使用groupby-transform
来做到这一点:
df['val_2'] = df.groupby('b')['val'].transform(lambda x: ((x) & (x != x.shift())).cumsum())
输出:
b a val val_1
0 A -3 True 1
1 A -4 True 1
2 A 2 False 1
3 A -1 True 2
4 B -3 True 1
5 B -1 True 1
6 B -7 True 1
7 C -6 True 1
8 C 1 False 1
9 D 1 False 0
10 D -1 True 1
11 D 1 False 1
12 D 4 False 1
13 D 5 False 1
14 D -3 True 2
15 D 2 False 2
16 D 3 False 2
17 D 4 False 2
18 D -1 True 3
19 D -2 True 3
请注意,如果第一个值为 true,则该值计为 1,这可能不是您想要的 - 但它是从您提供的代码中获取的。
关于python - 根据变量字段进行分组,然后重置python中的计数器(cumcount),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56971566/
我想要一个新的列( not_ordered_in_STREET_x_before_my_car ),它计算我的 Dataframe 中的 None 值,直到我所在的行,按 x 分组,按 x 和 y 排
当前正在尝试将我从 Pandas 制作的脚本转换为pyspark,我有一个数据框,其中包含以下形式的数据: index | letter ------|------- 0 | a 1
我创建一个数据框 df = pd.DataFrame({"b": ['A','A','A','A','B', 'B','B','C','C','D','D', 'D','D','D','D','D',
我有一个看起来像这样的 df: ID Component IDDate EmployeeID CreateUserID 24 1 2017-09-1
我有一个包含名称和日期的数据框。我想创建一个计数列,它只会在日期不同时递增。请看下面第三栏: Name Date COLUMN I NEED ---- ----
阿罗哈, 我有以下数据框 stores = [1,2,3,4,5] weeks = [1,1,1,1,1] df = pd.DataFrame({'Stores' : stores,
我有这个数据框: dic = {'users' : ['A','A','B','A','A','B','A','A','A','A','A','B','A'], 'pr
考虑数据框 df = pd.DataFrame( [ ['A', 1], ['A', 1], ['B', 1], ['B', 0
这是我拥有的数据: ID Vehicle Calculator Offer NextCalculator NextOffer 3497827 2002 For
我有一个如下所示的 df: df = pd.DataFrame({"child": ["A", "B", "C", "D", "E", "D", "A"],
我有一个看起来像这样的数据框 ID ..... config_name config_version ... aa A 0
我有一个 DataFrame,我按 Internal Score 和 Issue Date(按季度)分组。然后我想创建一个统计表,其中包括贷款数量的累计计数(由 Loan # 的不同计数表示)、贷款金
我想添加一列(标题为“acc_dates”),该列将给出带有日期时间索引的数据框中日期的增加计数。这是一个例子: import pandas as pd import datetime as dt d
我是一名优秀的程序员,十分优秀!