【问题标题】:Pandas rename df rows from list熊猫从列表中重命名 df 行
【发布时间】:2017-11-02 13:53:11
【问题描述】:

我已经查看了许多类似的问题,但我仍然无法让 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}}

我希望将责任_df 的行分别重命名为 3.7400000000000002、5.5999999999999996 和 7.0700000000000003。

【问题讨论】:

标签: python pandas dictionary row python-3.5


【解决方案1】:

您可以使用 data.frame 重命名行,这里有一个字典,这就是原因。

如果您将数据提供给我们会更好,但这里您不必从 stakes_list 制作字典

【讨论】:

    【解决方案2】:

    如果你想将liability_df的行名(索引)重命名为stakes_df的值,你需要给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
    

    【讨论】:

      猜你喜欢
      • 2017-01-23
      • 2016-09-15
      • 2021-08-15
      • 2020-07-04
      • 1970-01-01
      • 2019-05-25
      • 2021-03-20
      • 2021-10-27
      相关资源
      最近更新 更多