【问题标题】:Subtract rows in indexed dataframe减去索引数据框中的行
【发布时间】:2019-03-08 05:02:24
【问题描述】:

我目前正在使用此数据框。它按年份和国家/地区编制索引。我想做的是减去 2011 年的“military_exp”值和 2010 年的“military_exp”值。有没有办法做到这一点?

                       gdp_share    military_exp
year    Country                     
2010    USA            5.0  768465792.0
        China          2.0  138028416.0 
        Korea          3.0  31117330.0  
        Russia         4.0  43120560.0  
2011    USA            5.0  758988352.0
        China          2.0  149022400.0
        Korea          3.0  31543720.0
        Russia         3.0  46022120.0

【问题讨论】:

    标签: pandas dataframe pandas-groupby subtraction


    【解决方案1】:

    IIUC

    df.groupby(level=1)['military_exp'].diff()
    Out[195]: 
    year  Country
    2010  USA               NaN
          China             NaN
          Korea             NaN
          Russia            NaN
    2011  USA        -9477440.0
          China      10993984.0
          Korea        426390.0
          Russia      2901560.0
    Name: military_exp, dtype: float64
    

    更新

    df.loc[2011,'military_exp']-df.loc[2010,'military_exp']
    Out[197]: 
    Country
    USA       -9477440.0
    China     10993984.0
    Korea       426390.0
    Russia     2901560.0
    Name: military_exp, dtype: float64
    

    【讨论】:

    • 如果我还有更多年呢?假设从 2010 年到 2017 年。如果我想减去 2017 - 2010 年,同一行代码会起作用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多