python - 跳过 pandas 数据帧行中的 nan 和移位元素

标签 python pandas dataframe

我有一个像这样的数据框[![数据框看起来像这样][1]:/image/R7GmM.png 现在我想跳过 nan,以便数据向左移动,即 [![格式化的数据帧应该是这样的] [1]: /image/yGYIy.png

我无法通过 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_df 数据帧:

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

关于python - 跳过 pandas 数据帧行中的 nan 和移位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49795825/

相关文章:

python - 使用条件将行从 df 移动到另一个的简单方法?

python - 插入特定于列的 NaN 并根据值删除行

r - 一个单元格中的多个值

python - 在 pandas.dataframe 中搜索优化选择

python - Pandas groupby 操作

python - 根据 Pandas 列中的列表值从 DataFrame 中选择行

python - 在 python 中合并两个列表 - 但在合并期间对它们进行排序

python - 在 Pandas 中按特定月份和日期进行切片

Pythonanywhere 预定的作业有时会保持事件状态并且不会释放集群

python - 如何使用for进入python循环