我正在try 实现如下所示的魔方转换(参见下面的I/O):

# INPUT :

  COLX COLY COLZ
0    A    C  NaN
1    C    B    A
2    C  NaN    B

# OUTPUT :

      COLX     COLY COLZ
0        A  Missing    C
1        A        B    C
2  Missing        B    C

基本上,我需要按字母顺序对每行的值进行排序.

以下是我正在使用的数据帧:

import pandas as pd
import numpy as np

df = pd.DataFrame({'COLX': ['A', 'C', 'C'], 'COLY': ['C', 'B', np.nan] , 'COLZ': [np.nan, 'A', 'B']})

有什么建议吗? 我应该用pandas.DataFrame.shift美元吗?如果是这样,请问如何进行?

推荐答案

让我们堆叠,然后旋转:

out = (df.stack().reset_index(name='value')
   .assign(col=lambda x: x['value'])
   .pivot(index='level_0', columns='col', values='value')
   .fillna('Missing')
)
out.columns = df.columns

输出:

            COLX     COLY COLZ
level_0                       
0              A  Missing    C
1              A        B    C
2        Missing        B    C

每次请求更新:

out = (df.stack().reset_index(name='value')
   .assign(col=lambda x: x['value'])
   .pivot(index='level_0', columns='col', values='value')
)
out[:] = np.where(out.isna(), ['Missing_' + out.columns], out)
out.columns = df.columns

输出:

              COLX       COLY COLZ
level_0                           
0                A  Missing_B    C
1                A          B    C
2        Missing_A          B    C

Python相关问答推荐

发生异常:TclMessage命令名称无效.!listbox"

如何请求使用Python将文件下载到带有登录名的门户网站?

Python中绕y轴曲线的旋转

Plotly Dash Creating Interactive Graph下拉列表

Pandas GroupBy可以分成两个盒子吗?

如何使用SentenceTransformers创建矢量嵌入?

在两极中过滤

* 动态地 * 修饰Python中的递归函数

30个非DATETIME天内的累计金额

无法在Spyder上的Pandas中将本地CSV转换为数据帧

如何使用加速广播主进程张量?

用0填充没有覆盖范围的垃圾箱

类型对象';敌人';没有属性';损害';

如何在Python中创建仅包含完整天数的月份的列表

如何在不遇到IndexError的情况下将基数10的整数转换为基数80?

牛郎星直方图中分类列的设置顺序

如何导入与我试图从该目录之外运行的文件位于同一目录中的Python文件?

判断字典键、值对是否满足用户定义的搜索条件

Antlr Python错误处理简单的PLSQL

nameError_C未定义