Read and count

Val Krem valkrem at yahoo.com
Thu Mar 10 12:09:23 EST 2016


Thank you very much for the help.
First I want count by city and year. 
City year count
Xc1. 2001. 1
Xc1. 2002. 3
Yv1. 2001. 1
Yv2. 2002. 4
This worked fine !
Now I want to count by city only
City. Count
Xc1. 4
Yv2. 5
Then combine these two objects with the original data and send it to a file called "detout" with these columns:
"City", " year ", "x ", "cycount ", "citycount"
Many thanks again
This worked fine. I tried to count only by city and combine the three objects together 
City
Xc1 4
Yv2 5
Sent from my iPad 
> On Mar 10, 2016, at 3:11 AM, Jussi Piitulainen <jussi.piitulainen at helsinki.fi> wrote:
>> Val Krem writes:
>>> Hi all,
>>>> I am a new learner about python (moving from R to python) and trying
>> read and count the number of observation by year for each city.
>>>>>> The data set look like
>> city year x 
>>>> XC1 2001 10
>> XC1 2001 20
>> XC1 2002 20
>> XC1 2002 10
>> XC1 2002 10
>>>> Yv2 2001 10
>> Yv2 2002 20
>> Yv2 2002 20
>> Yv2 2002 10
>> Yv2 2002 10
>>>> out put will be
>>>> city
>> xc1 2001 2
>> xc1 2002 3
>> yv1 2001 1
>> yv2 2002 3
>>>>>> Below is my starting code
>> count=0
>> fo=open("dat", "r+")
>> str = fo.read();
>> print "Read String is : ", str
>>>> fo.close()
>> Below's some of the basics that you want to study. Also look up the csv
> module in Python's standard library. You will want to learn these things
> even if you end up using some sort of third-party data-frame library (I
> don't know those but they exist).
>> from collections import Counter
>> # collections.Counter is a special dictionary type for just this
> counts = Counter()
>> # with statement ensures closing the file
> with open("dat") as fo:
> # file object provides lines
> next(fo) # skip header line
> for line in fo:
> # test requires non-empty string, but lines
> # contain at least newline character so ok
> if line.isspace(): continue
> # .split() at whitespace, omits empty fields
> city, year, x = line.split()
> # collections.Counter has default 0,
> # key is a tuple (city, year), parentheses omitted here
> counts[city, year] += 1
>> print("city")
> for city, year in sorted(counts): # iterate over keys
> print(city.lower(), year, counts[city, year], sep = "\t")
>> # Alternatively:
> # for cy, n in sorted(counts.items()):
> # city, year = cy
> # print(city.lower(), year, n, sep = "\t")
> -- 
> https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /