Python是一个稀疏的数据框架

2024-04-18 16:24:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的数据帧

   a    b        z
1 NULL NULL  ... 1
2 NULL  1    ... NULL
3  1   NULL  ... NULL

第一列总是被填充的,在它的右边还有很多其他列。在a到z列中,有一列填充,其余的不填充。你知道吗

我想把这个数据帧转换成两列的数据帧,在第二列中包含从a到z列的标题。上面的例子可以转化成这样。你知道吗

  The_Column
1    z
2    b
3    a

那个熊猫.融化()函数接近我需要的,但它不处理空值。我只关心B列到Z列中填充的一个单元格。你知道吗

有没有优雅的方法来处理这个问题?你知道吗


Tags: the数据方法函数标题columnnull例子
2条回答

你需要融化,然后数据框dropna()-就是这样

这应该起作用:

df.set_index('a').melt().dropna().reset_index()

使用stack(默认情况下会删除NA):

x = (df.set_index('a')
         .stack()
         .reset_index()
         .drop(columns=0)
         .rename(columns={'level_1': 'The_Column'})

print(x)

输出:

   a The_Column
0  1          z
1  2          b
2  3          c

相关问题 更多 >