作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有如下所示的数据框,
type label
0 0 0
1 0 0
2 0 0
3 0 0
4 2 1
5 2 1
6 2 1
7 2 1
8 2 1
9 2 1
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 0 0
17 0 0
18 0 0
19 0 0
(需要一些魔法才能完成)
应在类型列中进行更改,这样,如果 label
为 0
且 type
为 0
那么下一行 type
应分配为 2
。
完整的数据框应如下所示:
type label
0 0 0
1 2 0
2 2 0
3 0 0
4 2 1
5 2 1
6 2 1
7 2 1
8 2 1
9 2 1
10 0 0
11 2 0
12 2 0
13 2 0
14 2 0
15 2 0
16 2 0
17 2 0
18 2 0
19 2 0
最佳答案
使用.eq()
屏蔽具有 type
和 label
列值为 0 和 .shift()
的行使用可选的时间频率将索引移动所需的周期数。
例如
m = df['type'].eq(0) & df['label'].eq(0)
df.loc[m == m.shift(1),'type'] = 2
print(df)
O/P:
type label
0 0 0
1 2 0
2 2 0
3 2 0
4 2 1
5 2 1
6 2 1
7 2 1
8 2 1
9 2 1
10 0 0
11 2 0
12 2 0
13 2 0
14 2 0
15 2 0
16 2 0
17 2 0
18 2 0
19 2 0
关于python - 如何根据数据框中的条件更改行的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58060206/
我是一名优秀的程序员,十分优秀!