鉴于满足某些条件,我正在尝试根据上一行替换当前行中的值。
条件:
当前行为 0
上一行是 C
在组内(首选,但可能没有)
类似于我的示例数据框:
ID Week value
4 1 W
4 2 C
4 3 0
4 4 0
24 1 W
24 2 W
24 3 0
24 4 A
我需要它看起来像的示例:
ID Week value
4 1 W
4 2 C
4 3 C
4 4 C
24 1 W
24 2 W
24 3 0
24 4 A
构建类似于我的数据框的代码
import pandas as pd
df = pd.DataFrame({'ID': {0:'4', 1:'4', 2:'4', 3:'4', 4:'24', 5:'24', 6:'24', 7:'24'}, 'Week': {0:'1', 1:'2', 2:'3', 3:'4', 4: '1', 5:'2', 6:'3', 7:'4'}, 'value': {0:'W', 1:'C', 2:'0', 3:'0', 4: 'W', 5:'W', 6:'0', 7:'A'} })
df[['ID', 'Week']] = df[['ID', 'Week']].astype('int')
解决问题的尝试效果不佳(引发错误)
for i in range(1, len(df)):
if df.value[i] == '0' and df.value[i-1] == 'C':
df.value[i] = 'C'
else:
df.value[i] = df.value[i]
GCT1015
有只小跳蛙
相关分类