从左到右填充大熊猫列

小熊

我目前正在研究熊猫问题,我想知道是否有解决此问题的简便方法。

我确实有总是具有如下格式的pandas表:

df = pd.DataFrame({'A':[1,2,np.nan,np.nan,3],'B':[2,3,np.nan,5,2],'C':[2,3,7,5,9],'D':[1,2,3,np.nan,np.nan]} )

该数据框应转换为:

df = pd.DataFrame({'A':[1,2,7,5,3],'B':[2,3,3,5,2],'C':[2,3,np.nan,np.nan,9],'D':[1,2,np.nan,np.nan,np.nan]} )

这意味着列中的所有值都需要尽可能向左移动。(首先需要填充第一列,然后是第二列,依此类推。)是否有一个简单的解决方案?

提前谢谢了。

耶斯列尔

使用自定义函数justify,仅将DataFrame转换为numpy数组:

#https://stackoverflow.com/a/44559180/2901002
df = pd.DataFrame(justify(df.to_numpy(),invalid_val=np.nan), columns=df.columns)
#pandas < 0.24
#df = pd.DataFrame(justify(df.values,invalid_val=np.nan), columns=df.columns)
print (df)
     A    B    C    D
0  1.0  2.0  2.0  1.0
1  2.0  3.0  3.0  2.0
2  7.0  3.0  NaN  NaN
3  5.0  5.0  NaN  NaN
4  3.0  2.0  9.0  NaN

如果性能并不重要,使用DataFrame.applySeries.dropnaSeries构造函数:

df = df.apply(lambda x: pd.Series(x.dropna().to_numpy()), axis=1)
#pandas < 0.24
#df = df.apply(lambda x: pd.Series(x.dropna().values), axis=1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

大熊猫:连接数据框,对列数据进行正向填充和多索引

来自分类Dev

使用大熊猫拆分列并用提取的值填充另一列

来自分类Dev

透视大熊猫数据并添加列

来自分类Dev

计算日期的大熊猫列清单

来自分类Dev

大熊猫保存的元组的值列

来自分类Dev

大熊猫从列列表分配结果

来自分类Dev

基于列条件的大熊猫

来自分类Dev

扩大熊猫列的排名

来自分类Dev

合并大熊猫中的列?

来自分类Dev

大熊猫中列的条件求和

来自分类Dev

在大熊猫中发现数据缺口(未填充)?

来自分类Dev

大熊猫:填充多个空白数据框

来自分类Dev

传说中用斜线填充的大熊猫

来自分类Dev

大熊猫:填充多个空白数据框

来自分类Dev

大熊猫:合并具有相同列名的大熊猫列

来自分类Dev

使用多列在大熊猫中转换大熊猫数据框

来自分类Dev

大熊猫密谋

来自分类Dev

大熊猫申请

来自分类Dev

大熊猫的选择

来自分类Dev

与大熊猫聚集

来自分类Dev

大熊猫与重复

来自分类Dev

大熊猫:根据其他列乘以列

来自分类Dev

大熊猫:查找所选列的平均值

来自分类Dev

大熊猫:获取相关性高的列的组合

来自分类Dev

大熊猫:从列列表中替换值列表

来自分类Dev

大熊猫,如何按列值过滤数据框

来自分类Dev

大熊猫:to_numeric用于多列

来自分类Dev

大熊猫冷凝多列相同的价值

来自分类Dev

大熊猫中2个指标列的逻辑或