In [1]:
import pandas as pd

data = pd.read_csv('D:/Data/2016/megaciv_cities.csv', delim_whitespace=True)
data = data.rename(columns={'人口上限':'農業なし/人口上限'})
data['農業あり/人口上限'] = data['農業なし/人口上限'].apply(lambda x: x+1 if x<=2 else x)
data['農業なし/人口増加力'] = data['農業なし/人口上限'].apply(lambda x: 2 if x>2 else x)
data['農業あり/人口増加力'] = data['農業あり/人口上限'].apply(lambda x: 2 if x>2 else x)

data
Out[1]:
文明名 都市名 農業なし/人口上限 都市用地 沿岸 火山 氾濫原 農業あり/人口上限 農業なし/人口増加力 農業あり/人口増加力
0 ケルト Caledonia 0 False True False False 1 0 1
1 ケルト Hibernia 1 False True False False 2 1 2
2 ケルト Britannia 1 False True False False 2 1 2
3 ケルト Dyfed 1 False True False False 2 1 2
4 ケルト Londinium 1 True True False False 2 1 2
5 ケルト Lugdunensis 2 False True False False 3 2 2
6 ケルト Belcica 2 False True False False 3 2 2
7 ケルト Alesia 1 True False False False 2 1 2
8 ケルト GermaniaInferior 2 False True False False 3 2 2
9 ケルト GermaniaSuperior 2 True False False False 3 2 2
10 ケルト UpperAhine 1 True False False False 2 1 2
11 ケルト Lugdunum 1 True False False False 2 1 2
12 ケルト Ultimathule 0 False True False False 1 0 1
13 ケルト GermaniaMagna 2 False True False False 3 2 2
14 ケルト Norcum 1 False False False False 2 1 2
15 ケルト UpperDanuse 3 False False False False 3 2 2
16 ケルト Lucia 1 False True False False 2 1 2
17 ケルト Sudeten 2 False False False False 3 2 2
18 ケルト WesternSermatia 1 False False False False 2 1 2
19 ケルト EeasternSarmatia 1 False False False False 2 1 2
20 ケルト Seythia 2 False True False False 3 2 2
21 ケルト NortheanWaites 0 False True False False 1 0 1
22 イベリア Aquitania 3 False True False False 3 2 2
23 イベリア AquaiMextlae 3 True True False True 3 2 2
24 イベリア Narbo 2 True True False False 3 2 2
25 イベリア Iberus 2 False True False False 3 2 2
26 イベリア CarthacoNova 2 True True False False 3 2 2
27 イベリア Cordova 2 True True False False 3 2 2
28 イベリア Lusitania 2 True True False False 3 2 2
29 イベリア Callaecla 2 False True False False 3 2 2
30 イベリア Cluniensis 2 False True False False 3 2 2
31 イベリア Caelakaugustanus 1 False True False False 2 1 2
32 イベリア Carthaginensis 1 False False False False 2 1 2
33 イベリア Emeritensis 1 False False False False 2 1 2
34 イベリア Bairarks 2 False True False False 3 2 2
35 イベリア WesternMavaetania 1 False True False False 2 1 2
36 イベリア WesternCetules0 1 False True False False 2 1 2
In [2]:
data['タイル総数'] = 1
result = data.groupby('文明名').sum()
result = result.ix[:, ['都市用地', '沿岸', '火山', '氾濫原', '農業なし/人口増加力', '農業なし/人口上限', '農業あり/人口増加力', '農業あり/人口上限', 'タイル総数']]
result
Out[2]:
都市用地 沿岸 火山 氾濫原 農業なし/人口増加力 農業なし/人口上限 農業あり/人口増加力 農業あり/人口上限 タイル総数
文明名
イベリア 5.0 13.0 0.0 1.0 25 27 30 40 15
ケルト 5.0 13.0 0.0 0.0 27 28 41 49 22
In [3]:
# タイル性能概要
data.groupby(['文明名', '都市用地', '農業なし/人口上限']).count()[['都市名']].unstack(level=[1,2]).sortlevel([0,1], axis=1).fillna(0)
Out[3]:
都市名
都市用地 False True
農業なし/人口上限 0 1 2 3 1 2 3
文明名
イベリア 0.0 5.0 4.0 1.0 0.0 4.0 1.0
ケルト 3.0 7.0 6.0 1.0 4.0 1.0 0.0
In [ ]: