【发布时间】:2021-12-08 08:02:53
【问题描述】:
我有一个这样的数据框:
df = pd.DataFrame({
'ref1': [1,1,3,7,7],
'ref2': [1,2,1,1,2],
'value': [1,2,3,5,6],
})
df
ref1 ref2 value
0 1 1 1
1 1 2 2
2 3 1 3
3 7 1 5
4 7 2 6
我想添加列new_value 并获得这个:
ref1 ref2 value new_value my_comment
0 1 1 1 NaN no prev ref1
1 1 2 2 NaN no prev ref1
2 3 1 3 1.0
3 7 1 5 3.0
4 7 2 6 NaN no same ref2 @ ref1==3
遵循这些规则:
-
new_value是value相同的ref2和以前的ref1(在像[1,3,7]这样的有序列表中),否则 NaN
【问题讨论】:
-
为什么最后一个
NaN不是1? -
@mozway 因为我想要
ref2==2的value(相同的ref2),而ref1==3(列表中的前一个ref1)
标签: pandas dataframe conditional-statements