Hello and welcome.

Please see my comments below.

On 09/03/2016 21:30, Val Krem via Python-list wrote:
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

Seems like you'd want a counter here https://docs.python.org/3/library/collections.html#collections.Counter. You'll need to know how to import this so start here https://docs.python.org/3/tutorial/modules.html

fo=open("dat", "r+")

We'd normally use the 'with' keyword here so the file automatically gets closed so:-

with open("dat", "r+") as fo:

str = fo.read();

'str' isn't a good name as it overrides the builtin function of that name. This will read the entire file. Easiest to loop as in:-

for line in fo.readlines():

Now you'll need a split call to get at your data https://docs.python.org/3/library/stdtypes.html#str.split and update your counter. Once this loop is finished use another loop to produce your output with print.

print "Read String is : ", str

The above is for Python 2, it needs parenthesis for Python 3. I'd recommend starting with the latter if that's possible.


fo.close()

Not needed if you use the 'with' keyword as discussed above.


Many thanks


No problem as I'm leaving you to put it all together :)

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to