我对熊猫很陌生,所以发现了一些困难。我希望有人能帮助我。我有一个像这样的数据集:
我想像期望的输出一样设置'r'
列值。每次'r'
显示1时,如果列'r'
的值不等于None(或者其他null值),则必须将'd'
的后续值设置为2。看一下所需的输出。我尝试了几种方法,但似乎都没有用。
原始数据框:
r d
0 1 None
1 None -4
2 None -1
3 None -2
4 None -3
5 None -1
6 None -2
7 None None
8 None None
9 None -3
10 None -2
11 None -1
12 None -3
13 1 None
14 None -5
15 None -7
所需的数据框:
r d
0 1 None
1 2 -4
2 2 -1
3 2 -2
4 2 -3
5 2 -1
6 2 -2
7 None None
8 None None
9 None -3
10 None -2
11 None -1
12 None -3
13 1 None
14 2 -5
15 2 -7
答案 0 :(得分:0)
import pandas as pd
import numpy as np
data = {'r': [1, *[np.NaN for _ in range(1, 12)]],
'd': [-4, -1, -2, -3, -1, -2, np.NaN, np.NaN, -3, -2, -1, -3]}
df = pd.DataFrame(data)
df.r[df.d.notnull()] = 2
print(df)
结果
r d
0 2.0 -4.0
1 2.0 -1.0
2 2.0 -2.0
3 2.0 -3.0
4 2.0 -1.0
5 2.0 -2.0
6 NaN NaN
7 NaN NaN
8 2.0 -3.0
9 2.0 -2.0
10 2.0 -1.0
11 2.0 -3.0
这是您要找的东西吗?您想要的输出似乎很奇怪。