60歳からITエンジニアを目指す無謀なブログ

60歳で定年し、職種を変更してIT技術者を目指すブログです。

pandas DF 抽出

グループby すると、DFの「地区名」にある名前からグループ分けして、
この場合は平均を求めてくれる、以下は参考例

df_mean =  df.groupby('地区名').mean()

            取引価格(総額)           坪単価      面積(㎡)     取引価格(㎡単価)     
地区名                                                                      
佃       4.877778e+07  2.609899e+06  58.333333  7.908784e+05  
入船      2.700000e+07  1.862142e+06  45.000000  5.642855e+05   
八丁堀     2.000000e+07  2.639999e+06  25.000000  8.000000e+05  
勝どき     3.091667e+07  1.666454e+06  57.083333  5.049862e+05  
新富      2.710000e+07  1.831499e+06  44.000000  5.549998e+05  

例えば坪単価のランキングにしたい場合は降順にするのでascendin=Flaseで
sortすれば良いので以下のようにする

df_mean_sort = df_mean.sort_values(by='坪単価',ascending=False)

ここでgroupbyされた「地区名」は1行、下げられているのはIndex扱いになっているからで、これを普通のカラム扱いにするには、index resetする

df_mean_sort.reset_index(inplace=True)

  地区名       取引価格(総額)     坪単価       面積(㎡)     取引価格(㎡単価)     
0  日本橋室町   3.200000e+07   4.22399e+06   25.000000      1.280000e+06   
1   日本橋箱崎町  2.618500e+07   3.201157e+06   29.250000      9.700476e+05    
2   日本橋蛎殻町  3.050000e+07  3.156153e+06   40.000000     9.564095e+05    
3   銀座                 3.400000e+07  3.036000e+06  35.000000     9.200000e+05   
4   八丁堀             2.000000e+07  2.639999e+06  25.000000     8.000000e+05   


 

インデックス参照で行、列抽出|    df[ ] 1つしか適用できない!

例)

インデックス名、カラム名で行、列抽出|df.loc[ ]

行番号、列番号で行、列抽出|df.iloc[ ]