以下是样本数据
sample_col = ["col1","col2","col3","col4", "col5"]
sample_data = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]
sample = pd.DataFrame(data = data_data, columns = data_col)
sample
col1 col2 col3 col4 col5
0 1 2 3 4 5
1 6 7 8 9 10
2 11 12 13 14 15
3 16 17 18 19 20
m = [0,1,2,1]
我需要将数据框样本中的每一行移动到列表m中的相应值。
输出应该看起来像这样
col1 col2 col3 col4 col5
0 1 2 3 4 5
1 NaN 6 7 8 9
2 NaN NaN 11 12 13
3 NaN 16 17 18 19
我知道我可以使用sample.iloc[i].shift(m[i])
通过应用循环逐个实现我想要的东西。但是我有一个非常大的数据集,需要永远完成。
那么有更好的方法来实现我想要做的事情吗? 欢迎任何帮助。
谢谢!
答案 0 :(得分:1)
您可以使用布尔切片来为每个班次操作选择感兴趣的行。如果set
的{{1}}很大,但比你的速度快,那么它仍会很慢。
m