2017-06-01 14 views
0

私は多くの同様の質問を見てきましたが、まだdfの行を別のdfの値のリストからリネームすることはできません。私は間違って何をしていますか?パンダがリストからdf行をリニューアル

def calculate_liabilities(stakes_df): 
    if not stakes_df.empty: 
     liabilities_df = pd.DataFrame(decimal_odds_lay.values * stakes_df.values) #makes df with stakes rows, decimal odds columns 
     stakes_list = stakes_df.to_dict() 
     print(stakes_list) 
     liabilities_df = liabilities_df.rename(stakes_list) 
     return liabilities_df 
    else: 
     print ("Failure to calculate liabilities") 

stakes_list = stakes_df.to_dict()次のdictを与える:

{'Stakes': {0: 3.7400000000000002, 1: 5.5999999999999996, 2: 7.0700000000000003}} 

私はliabilities_dfの行は、それぞれ3.7400000000000002、5.5999999999999996と7.0700000000000003と改名することにしたいです。

+0

あなたの条件をクリアしていない、https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rename.htmlの名前を変更使用する方法を知っているドキュメントを確認してください –

答えて

2

から辞書を作成する必要はありませんdictはdictのdictではない。

liabilities_df = liabilities_df.rename(stakes_list['Stakes']) 

example: 
df= pd.DataFrame([1,2,3]) 
    0 
0 1 
1 2 
2 3 

df.rename({0: 3.7400000000000002, 1: 5.5999999999999996, 2: 7.0700000000000003}) 

     0 
3.74 1 
5.60 2 
7.07 3 
0

data.frameで行の名前を変更することができます。ここには辞書があります。そのためです。あなたは私たちにデータを与えた場合

は良いだろうが、ここではあなたがstakes_dfの値にliabilities_dfの行の名前(インデックス)の名前を変更したい場合は、あなたが与える必要がstakes_list

関連する問題