On 09/09/2011 06:44 AM, kitty wrote:
Hi,

I'm new to python and I have read through the tutorial on:
http://docs.python.org/tutorial/index.html
which was really good, but I have been an R user for 7 years and and am
finding it difficult to do even basic things in python, for example I want
to import my data (a tab-delimited .txt file) so that I can index and select
a random sample of one column based on another column. my data has
2 columns named 'area' and 'change.dens'.

In R I would just

data<-read.table("FILE PATH\\Road.density.municipio.all.txt", header=T)
#header =T gives colums their headings so that I can call each individually
names(data)
attach(data)

Then to Index I would simply:
subset<-change.dens[area<2000&area>700] # so return change.dens values that
have corresponding 'area's of between 700 and 2000

then to randomly sample a value from that I just need to
random<-sample(subset,1)


My question is how do I get python to do this???

Sorry I know it is very basic but I just cant seem to get going,

Thank you
K.

No, it's not basic. If that R fragment is self-contained, apparently R makes lots of assumptions about its enviroment. Python can handle all of this, but not so succinctly and not without libraries (modules). In particular, your problem would be addressed with the csv module and the random one.

The following (untested) code might get you started.

import csv, sys, os

infilename = "path to file/Road.density.municipio.all.txt"
infile = open(infilename, "r")
incsv = csv.DictReader(infile, delimiter="\t")   # \t is the tab character
print incsv.fieldnames
for index, item in enumerate(incsv):
        do-something-with-item


item will be a dict representing one line of the file, each time through the loop. You can choose some of those with an if statement, and build a list of the dicts that are useful.

You can combine some of these steps using things like list comprehensions, but it's easier to take it a step at a time and see what you've got.


--

DaveA

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to