Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 跳过数据帧行中的nan和shift元素_Python_Pandas_Dataframe - Fatal编程技术网

Python 跳过数据帧行中的nan和shift元素

Python 跳过数据帧行中的nan和shift元素,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个这样的数据框[![dataframe看起来像这样][1]: 现在我想跳过nan,这样数据就会向左移动,即[![格式化数据帧应该是这样的][1]: 我无法通过pandas实现这一点。如果我有一个10万行的大数据集,是否有一个可伸缩的解决方案 [编辑]:以下是数据和所需输出: #Original df >>> df A B C D 0 a NaN c NaN 1 b NaN b a 2 c NaN NaN d

我有一个这样的数据框[![dataframe看起来像这样][1]: 现在我想跳过nan,这样数据就会向左移动,即[![格式化数据帧应该是这样的][1]:

我无法通过pandas实现这一点。如果我有一个10万行的大数据集,是否有一个可伸缩的解决方案

[编辑]:以下是数据和所需输出:

#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
这里有一种方法:

从名为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\u df
dataframe:

>>> shifted_df
   A  B  C  D
0  a  c      
1  b  b  a   
2  c  d      
3  d  a  b  c

请重新处理您的问题,以包含一个示例。看起来您试图在帖子中放置图像,但它们没有显示。在任何情况下,将示例数据剪切并粘贴到问题正文中以生成一个示例总是比发布数据框的图像好。我已编辑了链接。请检查链接以了解问题。不是吗我已经对你的问题进行了编辑,添加了一个例子。以后,请尝试以类似的方式发布例子,使用数据帧的屏幕截图并不容易,也不会吸引很多人来回答你的问题。