Python 通过拆分字符串来透视数据帧&;格式特定列

Python 通过拆分字符串来透视数据帧&;格式特定列,python,pandas,string,dataframe,Python,Pandas,String,Dataframe,我面临着一个比我的熊猫水平更高的问题——但一旦我知道了步骤,问题就很简单了 我有一个列名如下的dataframe,我想从每个列的字符串中提取句点,并将句点透视到行,如下面的第二个示例所示 我还想对每一列进行不同的格式设置——目前它只是一个数字,但有些应该是%,有些应该是数字,并且带有一定数量的小数。我现在拥有的和我想要的概述如下 我尝试了一些方法——使用字符串拆分方法创建多索引,然后旋转多索引。我觉得我在正确的轨道上,但只是目前无法让它工作。谢谢你的帮助 我现在在一个数据帧中拥有什么 clien

我面临着一个比我的熊猫水平更高的问题——但一旦我知道了步骤,问题就很简单了

我有一个列名如下的dataframe,我想从每个列的字符串中提取句点,并将句点透视到行,如下面的第二个示例所示

我还想对每一列进行不同的格式设置——目前它只是一个数字,但有些应该是%,有些应该是数字,并且带有一定数量的小数。我现在拥有的和我想要的概述如下

我尝试了一些方法——使用字符串拆分方法创建多索引,然后旋转多索引。我觉得我在正确的轨道上,但只是目前无法让它工作。谢谢你的帮助

我现在在一个数据帧中拥有什么

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
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