【发布时间】:2021-10-22 21:26:07
【问题描述】:
目标是将前一个字母组最后一行的数字放入新列“last_digit_prev_group”中。我在“col_ok”列中手动输入了预期的正确值作为结果公式。我停止尝试 shift(),但效果与我预期的相差甚远。也许还有其他方法? 请原谅我的帖子前后不一致,我不是 IT 专家,也不懂英语。提前感谢您的支持。
df = pd.read_csv('C:/Users/.../a.csv',names=['group_letter', 'digit', 'col_ok'] , index_col=0,)
df['last_digit_prev_group'] = df.groupby('group_letter')['digit'].shift(1)
打印(df)
group_letter digit col_ok last_digit_prev_group
A 1 n NaN
A 3 n 1.0
A 2 n 3.0
A 5 n 2.0
A 1 n 5.0
B 1 1 NaN
B 2 1 1.0
B 1 1 2.0
B 1 1 1.0
B 3 1 1.0
C 5 3 NaN
C 6 3 5.0
C 1 3 6.0
C 2 3 1.0
C 3 3 2.0
D 4 3 NaN
D 3 3 4.0
D 2 3 3.0
D 5 3 2.0
D 7 3 5.0
【问题讨论】: