On Jul 13, 10:22 pm, Neil Berg <[email protected]> wrote:
> Hello all,
>
> I am having an issue with my attempts to accurately filter some data from a
> CSV file I am importing. I have attached both a sample of the CSV data and
> my script.
>
> The attached CSV file contains two rows and 27 columns of data. The first
> column is the station ID "BLS", the second column is the sensor number "4",
> the third column is the date, and the remaining 24 columns are hourly
> temperature readings.
>
> In my attached script, I read in row[3:] to extract just the temperatures, do
> a sanity check to make sure there are 24 values, remove any missing or "m"
> values, and then append the non-missing values into the "hour_list".
>
> Strangely the the first seven rows appear to be empty after reading into the
> CSV file, so that's what I had to incorporate the if len(temps) == 24
> statement.
>
> But the real issue is that for days with no missing values, for example the
> second row of data, the length of the hour_list should be 24. My script,
> however, is returning 23. I think this is because the end-of-row-values have
> a trailing "\". This must mark these numbers as non-digits and are lost in my
> "isdig" filter line. I've tried several ways to remove this trailing "\",
> but to no success.
>
> Do you have any suggestions on how to fix this issue?
>
> Many thanks in advance,
>
> Neil Berg
>
> csv_test.py
> 1KViewDownload
>
> csv_sample.csv
> < 1KViewDownload
Hello Neil,
I just had a quick look at your script. To remove the trailing "\" you
can use val = val.rstrip('\\') in your script. Note the double
backslash.
The script now returns 24 items in the hour_list.
Good luck!
Marco
--
http://mail.python.org/mailman/listinfo/python-list