我有一个像这样的Pandas数据框:
d = {'col1': [1, 2], 'col2': [3, 4], 'col3': [5, 6]}
df = pd.DataFrame(data=d)
看起来像:
doc sent col1 col2 col3
0 0 0 5 4 8
1 0 1 6 3 2
2 0 2 1 2 9
3 1 0 6 1 6
4 1 1 5 1 5
我想将前一行和下一行绑定到每一列,如下所示(在我的示例中考虑“doc”和“sent”列,这些列为下面之前或之后没有任何内容可以出现的索引):
doc sent col1 col2 col3 p_col1 p_col2 p_col3 n_col1 n_col2 n_col3
0 0 0 5 4 8 0 0 0 6 3 2
1 0 1 6 3 2 5 4 8 1 2 9
2 0 2 1 2 9 6 3 2 6 1 6
3 1 0 6 1 6 0 0 0 5 1 5
4 1 1 5 1 5 6 1 6 0 0 0
1 回答
使用pd.DataFrame.shift获取上一行/下一行,pd.concat合并数据帧&fillna将空值设置为零
由于numpy整数数组不能包含空值,因此将空值向上转换为浮点数,因为在将空值替换为0后将其转换为整数 .
输出: