首页 > 解决方案 > 通过拆分字符串和格式特定列来透视数据框

问题描述

我面临的问题超出了我的熊猫水平 - 但一旦我知道这些步骤,可能很简单。

我有一个列名如下的数据框,我想从每列的字符串中提取句点并将句点旋转到行,如下面的第二个示例所示。

我还想以不同的方式格式化每一列 - 目前它只是一个数字,但有些应该是 % 和一些数字,并带有一定数量的小数。我现在拥有的和我想要的概述如下。

我尝试了一些方法 - 使用字符串拆分方法创建多索引,然后旋转多索引。我觉得我走在正确的轨道上,但目前无法让它发挥作用。任何帮助表示赞赏。

我现在在数据框中拥有的东西

client_return_12m,client_return_36m,client_return_60m,client_sharpe_12m,client_sharpe_36m,client_sharpe_60m
0.34116,0.56439,0.701156,0.74320,0.82349,0.76889

period,client_return,client_sharpe
12m,34.1%,0.74
36m,56.4%,0.82
60m,70.1%,0.77

标签: pythonpandasstringdataframe

解决方案


str.rsplit最后使用_,然后重塑DataFrame.stack

df.columns = df.columns.str.rsplit('_', expand=True, n=1)
df = df.stack().reset_index(level=0, drop=True).rename_axis('period').reset_index()
print (df)
  period  client_return  client_sharpe
0    12m       0.341160        0.74320
1    36m       0.564390        0.82349
2    60m       0.701156        0.76889

推荐阅读