我正在洗心革面,我一辈子都想不出一个简单的方法来将输入转化为输出,任何帮助都将不胜感激.

输入:

level1 level2 level3 level4
4 2 1 NaN
2 1 NaN NaN

输出:

level1 level2 level3 level4
1 2 4 NaN
1 2 NaN NaN

谢谢

推荐答案

下面是一种使用重新索引的方法:

(df
 .apply(lambda s: s.dropna()[::-1].reset_index(drop=True), axis=1)
 .reindex(columns=range(df.shape[1]))
 .set_axis(df.columns, axis=1)
)

输出:

   level1  level2  level3  level4
0     1.0     2.0     4.0     NaN
1     1.0     2.0     NaN     NaN

Python相关问答推荐

需要计算60,000个坐标之间的距离

在Python Attrs包中,如何在field_Transformer函数中添加字段?

优化pytorch函数以消除for循环

Python中绕y轴曲线的旋转

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

在vscode上使用Python虚拟环境时((env))

pandas:排序多级列

如何在表中添加重复的列?

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

python中的解释会在后台调用函数吗?

如何获取Python synsets列表的第一个内容?

如果有2个或3个,则从pandas列中删除空格

如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装Pyregion

使用嵌套对象字段的Qdrant过滤

提取数组每行的非零元素

如何在Python中将超链接添加到PDF中每个页面的顶部?

为什么dict. items()可以快速查找?

替换包含Python DataFrame中的值的<;

在MongoDB文档中仅返回数组字段

这是什么排序算法?(将迭代器与自身合并&&Q;)