使用ref
和value
作为列的DataFrame:
ref value buffer
0 0 0 0
1 1 3 0
2 2 4 0
3 0 2 2
4 8 21 2
5 0 -2 -2
6 3 13 -2
7 6 17 -2
8 2 4 -2
9 0 5 5
10 0 5 5
如何创建尊重此定义的第三个buffer
列:
ref == 0
then buffer = value ref != 0
then buffer =最近的前一行ref = 0
答案 0 :(得分:4)
在3.
时使用where
保留df.value
。其余的将是df.ref == 0
。使用np.nan
填充之前行的ffill
。使用assign创建新列。
请注意,我没有将列强制转换为int。我把它遗漏了,因为前几行ref可能不为零。如果发生这种情况,缓冲区的初始行将为np.nan
,无需转发填充。在这种情况下,我无法转换为int。
np.nan
答案 1 :(得分:0)
你可以在熊猫中找到条件
//interface
struct Copyable{
void copy();
}
class Animal { //which implements the interface but doesn't inherit it.
....
void copy();
...
}
//consumer function
void Copy(Interface<Copyable> item){
item.copy();
}
int main(){
Animal a;
Copy(a);
}