如何在一个热编码的熊猫数据框中找到列的正索引? - python

我有一个热编码的熊猫数据框,其形式为:

df

      A      B      C      D
ID
#1    2      1      0      1
#2    1      0      0      1
#3    1      1      1      0

df = pd.DataFrame({'ID_1':['#1','#1','#3','#1'], 'ID_2':['#2','#3',np.NaN,'#2'], \
          'ID_3':['#3', np.NaN, np.NaN, np.NaN] }, index=['A','B','C','D'])

我想将其转换为新的数据框,其中的索引是列,并且值对应于旧的索引(一种旋转数据框的方式)。我只在寻找那些在原始数据帧中具有正值(对应于计数)的旧索引。实际上,df应该如下所示:

new_df

      ID_1  ID_2   ID_3
c_id
A     #1     #2     #3      
B     #1     #3            
C     #3      
D     #1     #2

我知道我需要以某种方式枢转数据框,但是我无法找到一种有效的方法来做到这一点。

参考方案

首先使用gt使df成为布尔值,然后使用mul,然后我们按isnull对列进行排序。

df.gt(0).mul(df.index.values,0).T.replace('',np.nan).apply(lambda x : sorted(x,key=pd.isnull),1)
ID  #1   #2   #3
A   #1   #2   #3
B   #1   #3  NaN
C   #3  NaN  NaN
D   #1   #2  NaN

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

如何将熊猫数据框合并到现有的reportlab表中? - python

example_df = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]] 我想将example_df pandas数据框集成到现有的Reportlab表中-行数正在变化(如示例中所示,可以是3,也可以是20):rlab_table(['Mean','Max','Min',…