Skip to main content
 首页 » 编程设计

python之Pandas 数据框切片

2025年05月04日9zhwl

我有以下数据框:

    2012   2013   2014   2015  2016   2017   2018                 Kategorie 
0   5.31   5.27   5.61   4.34   4.54   5.02   7.07  Gewinn pro Aktie in EUR 
1  13.39  14.70  12.45  16.29  15.67  14.17  10.08                      KGV 
2 -21.21  -0.75   6.45 -22.63  -7.75   9.76  47.52           Gewinnwachstum 
3 -17.78   2.27  -0.55   3.39   1.48   0.34    NaN                      PEG 

现在,我只选择 KGV 行:

df[df["Kategorie"] == "KGV"] 

哪些输出:

    2012  2013   2014   2015  2016   2017   2018  Kategorie 
1  13.39  14.7  12.45  16.29  15.67  14.17  10.08       KGV 

如何计算过去五年(本例中为 2016、15、14、13、12)的 mean()?
我试过了

df[df["Kategorie"] == "KGV"]["2016":"2012"].mean() 

但这会抛出一个 TypeError。为什么我不能在此处对列进行切片?

请您参考如下方法:

loc 支持这种类型的切片(从左到右):

df.loc[df["Kategorie"] == "KGV", "2012":"2016"].mean(axis=1) 
Out:  
1    14.5 
dtype: float64 

请注意,这不一定表示 2012、2013、2014、2015 和 2016。这些是字符串,因此表示 df['2012'] 和 df['2016 ']。中间可能有一个名为 foo 的列,它会被选中。