【发布时间】:2017-08-24 11:24:33
【问题描述】:
我有一个巨大的数据框,其中包含值和空白/NA。我想从数据框中删除空白并将列中的下一个值向上移动。考虑下面的示例数据框。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,4))
df.iloc[1,2] = np.NaN
df.iloc[0,1] = np.NaN
df.iloc[2,1] = np.NaN
df.iloc[2,0] = np.NaN
df
0 1 2 3
0 1.857476 NaN -0.462941 -0.600606
1 0.000267 -0.540645 NaN 0.492480
2 NaN NaN -0.803889 0.527973
3 0.566922 0.036393 -1.584926 2.278294
4 -0.243182 -0.221294 1.403478 1.574097
我希望我的输出如下所示
0 1 2 3
0 1.857476 -0.540645 -0.462941 -0.600606
1 0.000267 0.036393 -0.803889 0.492480
2 0.566922 -0.221294 -1.584926 0.527973
3 -0.243182 1.403478 2.278294
4 1.574097
我希望删除 NaN 并将下一个值向上移动。 df.shift 没有帮助。我尝试了多个循环和 if 语句并达到了预期的结果,但有没有更好的方法来完成它。
【问题讨论】: