我有以下数据帧:

                    label scoreCTBIN004v1  scoreCTBIN003v1  scoreCTBIN001v1  
    Overall Stress Score              54              NaN              NaN     
            Stress Score              50              NaN              NaN     
  Short-Term Stress Risk              50              NaN              NaN
      Future Stress Risk              59              NaN              NaN
     Chronic Stress Risk              55              NaN              NaN
    Overall Stress Score             NaN             57.0              NaN
            Stress Score             NaN             52.0              NaN
  Short-Term Stress Risk             NaN             52.0              NaN
      Future Stress Risk             NaN             65.0              NaN
     Chronic Stress Risk             NaN             59.0              NaN
    Overall Stress Score             NaN              NaN             57.0
            Stress Score             NaN              NaN             49.0
  Short-Term Stress Risk             NaN              NaN             54.0 
      Future Stress Risk             NaN              NaN             66.0 
     Chronic Stress Risk             NaN              NaN             60.0      

我只是想压缩标签列,使它们都在同一行上,但它不会合并标签,即使它们是相同的名称?

简单地说:

                    label scoreCTBIN004v1  scoreCTBIN003v1  scoreCTBIN001v1  
    Overall Stress Score              54              57              57     
            Stress Score              50              52              49     
  Short-Term Stress Risk              50              52              54
      Future Stress Risk              59              65              66
     Chronic Stress Risk              55              59              60

推荐答案

在这种情况下,可以使用pd.pivot_table.

data = {'label':['Overall Stress Score','Stress Score','Short-Term Stress Risk','Future Stress Risk','Chronic Stress Risk']*3,'scoreCTBIN004v1':[1,2,3,4,5]+[np.nan]*10,'scoreCTBIN003v1':[np.nan]*5+[6,7,8,9,10]+[np.nan]*5,'scoreCTBIN001v1':[np.nan]*10+[1,2,3,4,5]}
df=pd.DataFrame(data)

pd.pivot_table(df,index='label')
Out[21]: 
                        scoreCTBIN001v1  scoreCTBIN003v1  scoreCTBIN004v1
label                                                                    
Chronic Stress Risk                 5.0             10.0              5.0
Future Stress Risk                  4.0              9.0              4.0
Overall Stress Score                1.0              6.0              1.0
Short-Term Stress Risk              3.0              8.0              3.0
Stress Score                        2.0              7.0              2.0

Python相关问答推荐

通过优化空间在Python中的饼图中添加标签

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

NP.round解算数据后NP.unique

当独立的网络调用不应该互相阻塞时,'

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

基于索引值的Pandas DataFrame条件填充

所有列的滚动标准差,忽略NaN

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

在极中解析带有数字和SI前缀的字符串

python panda ExcelWriter切换动态公式到数组公式

在Docker容器(Alpine)上运行的Python应用程序中读取. accdb数据库

如何在Python请求中组合多个适配器?

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

在第一次调用时使用不同行为的re. sub的最佳方式

Python如何导入类的实例

如何在Python中自动创建数字文件夹和正在进行的文件夹?

pytest、xdist和共享生成的文件依赖项

如何在Quarto中的标题页之前创建序言页

如何在基于时间的数据帧中添加计算值