いつもお世話になっております。
タイポからたまたま正解に辿り着けたのですが、ロジックがわからず、ご指導をお願いします。

■出力データ

#       date       area    resident valueA   valueB  SD  KM
48597  2019-01-26  tokyo   man      75000    6.96     1.1  1.1
48598  2019-01-26  tokyo   woman    75000    6.96     1.1  1.1

以下のコードの出力をすると、上記のような結果が得られます。この場合、goupbyで取得した値が、b.max()[0]は、dateを日付として取得することがわかるのですが、valueAを取得するための値が、b.mean()[1]ではなく、b.mean()[0]となります。この理由はなんでしょうか?

b.max()[0] ---> date
b.mean()[1] ---> valueA 【不正解】
b.mean()[0] ---> valueA 【正解】

■ソースコード

df = pd.read_csv(f,header=None, usecols=[0,1, 2,10,11,13,14], names=['date','area','resident','valueA','valueB','SD','KM'], dtype={'date':'str','area':'str','resident':'str','valueA':'int','valueB':'float','SD':'float','KM':'float'})

for a,b in df.groupby(['area', 'resident'], as_index=False):
print(b.max()[0])  #date

print(a[0])
print(a[1])

print(b.count()[1]) #count
print(int(b.mean()[0])) #valueA
print(round(b.mean()[1],2)) #valueB
print(round(b.mean()[2],2)) #SD
print(round(b.mean()[3],2)) #KM

■参照csvデータ (以下のようなデータが大量に並ぶ)

2019-01-26,tokyo,man,nameA,areaA,detailA,4,13,199000,15000,214000,16.77,A,1.0,1.0
2019-01-26,tokyo,man,nameA,areaA,detailB,4,13,208000,15000,223000,16.87,B,1.0,1.0