Python3如何创建包含多个索引的数据帧?

Python3如何创建包含多个索引的数据帧?,python,python-3.x,pandas,dataframe,indexing,Python,Python 3.x,Pandas,Dataframe,Indexing,我想创建一个以stock1、stock2和optimal作为索引的数据框架 平均值、标准差、夏普值、重量、财富是列。我已经生成了相应的列值。我需要帮助生成预期输出 输入: stock1 = pd.Series({ 'mean': mean1, 'std': std1, 'sharpe': mean1 / std1,

我想创建一个以stock1、stock2和optimal作为索引的数据框架

平均值、标准差、夏普值、重量、财富是列。我已经生成了相应的列值。我需要帮助生成预期输出

输入:

stock1 = pd.Series({
                            'mean': mean1,
                            'std': std1,
                            'sharpe': mean1 / std1,
                            'weight': w1,
                            'wealth': stk1_wealth
                          })

stock2 = pd.Series({
                            'mean': mean2,
                            'std': std2,
                            'sharpe': mean2 / std2,
                            'weight': w2,
                            'wealth': stk2_wealth
                          })

optimal = pd.Series({
                            'mean': returns,
                            'std': volatility,
                            'sharpe': sharpe,
                            'weight': w1+w2,
                            'wealth': opt_wealth
                             })

stats_df = stk1_stats_df.append(stk2_stats_df).append(optimal_stats_df)
实际产量:

mean       0.00155525
std         0.0113922
sharpe       0.136519
weight       0.479314
wealth    [[14555.0]]
mean       0.00188339
std         0.0124908
sharpe       0.150783
weight       0.520686
wealth    [[15756.0]]
mean       0.00172611
std        0.00957114
sharpe       0.180345
weight              1
wealth          15180
dtype: object
预期产出:

           mean      std      sharpe     weight       wealth
stock1   0.0016   0.0113      0.1365       0.48      14555.0
stock2   0.0018   0.0124      0.1507       0.52      15756.0
optimal  0.0017   0.0096      0.1803       1.0       15180.0

假设您想从
系列
对象创建一个全新的
数据框架
,则需要在数据框架的构造中包含它们的
索引

>>> pd.DataFrame([stock1, stock2, optimal], index=['stock1', 'stock2', 'optimal'])
         mean  std  sharpe  weight  wealth
stock1   10.0  5.0     2.0     3.0    30.0
stock2   44.0  5.0     2.0     3.0    30.0
optimal  56.0  5.0     2.0     3.0    30.0

注:我对
平均值
标准值
等使用了不同的任意值。好了,现在可以了!非常感谢你@Algebra8我不确定如何应用,因为我收到了以下错误消息:
ValueError:传递值的长度为3,索引意味着5。
之所以应用,是因为您试图将
pd.Series
用作
pd.DataFrame
中的一行,这就是问题所在。
ValueError
可能来自代码的其他部分。从概念上讲,第一个答案中提出的配方应该可以解决您的问题。