我有一个像这样的数据框[![Dataframe看起来像这样] [1]:https://i.stack.imgur.com/R7GmM.png 现在我想跳过nan,所以数据向左移动,即[![格式化的数据框应该是这样的] [1]:https://i.stack.imgur.com/yGYIy.png
我无法通过熊猫这样做。如果我有一个可以说100k行的大型数据集,那么可扩展的解决方案是否可行呢?
[编辑] :这是数据和所需的输出:
#Original df
>>> df
A B C D
0 a NaN c NaN
1 b NaN b a
2 c NaN NaN d
3 d a b c
#Desired output:
A B C D
0 a c
1 b b a
2 c d
3 d a b c
答案 0 :(得分:1)
这是一种方法:
从名为df
的数据框开始:
A B C D
0 a NaN c NaN
1 b NaN b a
2 c NaN NaN d
3 d a b c
应用这些行:
shifted_df = df.apply(lambda x: pd.Series(x.dropna().values), axis=1).fillna('')
shifted_df.columns = df.columns
您获得了shifted_df
数据框:
>>> shifted_df
A B C D
0 a c
1 b b a
2 c d
3 d a b c