我正在尝试找到一种caseid在非常大的数据集中生成值的方法。我希望caseid变量做两件事:(1)增加1when y = 1。重要的是,caseid在观察到后 的行中 ' 的值应该增加y = 1,并且 (2)1当case值发生变化时增加,即从A到B。
示例数据如下:
case = pd.Series(['A', 'A', 'A', 'A',
'B', 'B', 'B', 'B',
'C', 'C', 'C', 'C'])
y = pd.Series([0, 1, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0])
year = [2016, 2017, 2018, 2019,
2016, 2017, 2018, 2019,
2016, 2017, 2018, 2019]
caseid = pd.Series([1, 1, 2, 2,
3, 3, 4, 4,
5, 5, 5, 6])
dict = {'case': case, 'y': y, 'year': year, 'caseid' : caseid}
df = pd.DataFrame(dict)
case y year caseid
0 A 0 2016 1
1 A 1 2017 1
2 A 0 2018 2
3 A 0 2019 2
4 B 0 2016 3
5 B 1 2017 3
6 B 0 2018 4
7 B 0 2019 4
8 C 0 2016 5
9 C 0 2017 5
10 C 1 2018 5
11 C 0 2019 6
非常感谢您的慷慨帮助!
呼唤远方
慕婉清6462132
相关分类