1

Python pandasを使用して、いくつかの列でグループ化された列の要素の数を見つけるにはどうすればよいですか?

私は次のcsvファイル構造を持っています:

'Country'     'City'     'Year'  'Month'   'Value'    'Street_Code'
 USA          New York    1971     jan        0.0        1
 USA          New York    1971     feb       23.5        1
 USA          New York    1971     mar       10.2        1
 USA          Florida     1971     jan        0.0        1
 USA          Florida     1971     feb        0.0        1
 USA          Florida     1971     mar        0.0        1
 USA          New York    1971     jan        0.0        2
 USA          New York    1971     feb        15.0       2
 USA          New York    1971     mar        7.6        2
 USA          Florida     1971     jan        0.0        2
 USA          Florida     1971     feb        0.0        2
 USA          Florida     1971     mar        2.3        2

、、&'value'をグループ化してゼロ (0.0) の数をカウントしたい。'Country''City''Year''Street Code'

これまでに試しました。

import pandas as pd
data = pd.read_csv('country_details.csv')
count_data = data[data['Value'] == 0.0] # I'm filtering the data. I don't think this is the right way of doing it
grouped = count_data.groupby(['Country','Year','Month','Street_Code']) # I'm stuck here
4

1 に答える 1

2

フィルタリングはほぼ正しいですが、列名 (この場合は「値」) を参照する必要があります。

試す:

import pandas as pd
import StringIO

csv = StringIO.StringIO("""Country,City,Year,Month,Value,Street_Code
USA,NewYork,1971,jan,0.0,1
USA,NewYork,1971,feb,23.5,1
USA,NewYork,1971,mar,10.2,1
USA,Florida,1971,jan,0.0,1
USA,Florida,1971,feb,0.0,1
USA,Florida,1971,mar,0.0,1
USA,NewYork,1971,jan,0.0,2
USA,NewYork,1971,feb,15.0,2
USA,NewYork,1971,mar,7.6,2
USA,Florida,1971,jan,0.0,2
USA,Florida,1971,feb,0.0,2
USA,Florida,1971,mar,2.3,2""")

data = pd.read_csv(csv)

datasub = data[data['Value'] == 0.0]

print datasub.groupby(['Country','Year','Month','Street_Code'])['Value'].count()

Country  Year  Month  Street_Code
USA      1971  feb    1              1
                      2              1
               jan    1              2
                      2              2
               mar    1              1
于 2013-04-23T14:19:33.670 に答える