我已经看了很多类似的问题,但我仍然无法让pandas从另一个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()
给出了以下词典:
{'Stakes': {0: 3.7400000000000002, 1: 5.5999999999999996, 2: 7.0700000000000003}}
我希望将loads_df行分别重命名为3.7400000000000002,5.5999999999999996和7.0700000000000003。
答案 0 :(得分:4)
如果你想将debt_df的行名(索引)重命名为stakes_df的值,你需要给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
答案 1 :(得分:0)
您可以使用data.frame重命名行,这里有字典,这就是原因。
如果您向我们提供数据会更好,但在这里您不必从stakes_list制作字典