Как разделить данные на два CSV, используя маску на основе определенного идентификатора в NumPy - PullRequest
0 голосов
/ 29 июня 2019

Это отредактированный предыдущий вопрос.

В свободное время я учусь на GIT-курсе Geo Python 2018, когда пытаюсь выучить Python. Это открытый курс, но, поскольку я не являюсь частью этого конкретного университета, мне некуда обратиться за помощью, кроме как здесь.

Входные данные:

https://docs.google.com/spreadsheets/d/1gTWu5l6wiankP4ktfWgHLdw_OqnXX1RoY291HWrIxCM/edit?usp=sharing

Сначала я прочитал данные:

import numpy as np
fp = '../6153237444115dat.csv'
data = np.genfromtxt(fp, skip_header=1, usecols=(0,2,22,27,28), delimiter=',')

добавление переменных столбца

station = data[:, 0]
date = data[:, 1]
temp = data[:, 2]
temp_max = data[:, 3]
temp_min = data[:, 4]
len(temp)

Лен - 11694.

Мне нужно сделать следующее в numpy:

  1. Создать новую переменную маски tempmask, которая имеет значение True для всех конечных значений температуры и False для значений nan в переменной temp

  2. Удалить все строки из переменных столбца (date, temp, temp_max, temp_min) с помощью массива tempmask

У меня были проблемы с управлением этим. Итак, создание темпмаски:

tempmask = np.isfinite(temp)

Это позволяет маске удалить значение Nan из temp. Теперь мне нужно использовать тот же массив tempmask, чтобы удалить эти конкретные значения из массивов station, date, temp_max и temp_min.

date = date[tempmask]
temp_max = temp_max[tempmask] 

После этого мне нужно экспортировать два отдельных файла CSV. Мне нужно выбрать все строки, где «station» == 29980, используя маску под названием «kmask», и экспортировать ее в «kumpula», а другую в «Rovaniemi», где «station» == 29450, используя маску массива «rmask».

kmask = data[station==29980]
rmask = data[station==28450]
kumpula = kumpula[kmask]
rovaniemi = rovaniemi[rmask]

Последняя часть кода не работает, поэтому мне нужна помощь.

1 Ответ

0 голосов
/ 29 июня 2019

Итак, вот как мне удалось, если кто-то хочет знать:

укладка столбцов и их транспонирование

kumpula = np.vstack((station, date, temp, temp_max, temp_min, celsius))
kumpula = np.transpose(kumpula)
kmask = station==29980
kumpula = kumpula[kmask]
rovaniemi = np.vstack((station, date, temp, temp_max, temp_min, celsius))
rovaniemi = np.transpose(Rovaniemi)
rmask = station==29450
rovaniemi = rovaniemi[rmask]
...