Python 2.7 使用python查找由几列分组的列中元素的计数

Python 2.7 使用python查找由几列分组的列中元素的计数,python-2.7,pandas,Python 2.7,Pandas,如何使用python查找由几列分组的列中的元素计数 我有以下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

如何使用python查找由几列分组的列中的元素计数

我有以下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
我想通过分组计算
'Country'
'City'
'Year'
'streetcode'
来计算
'value'
中的零(0.0)数

到目前为止我已经试过了

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

您的筛选几乎正确,但您需要引用列名,在本例中为“Value”

尝试:


您的数据是否使用read_csv正确解析?是。没有问题。如果您的数据被
read\u csv
正确解析,为什么会有一列名为
'0'
?我原以为是
data[data['Value']==0]
。天哪。。对不起…编辑
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