Python Pandas - получает в среднем «SNOW» в месяц от каждого местоположения / «NAME» - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть файл .csv с именем Data.csv.Мне нужно найти среднее количество снега в месяц в каждом месте или «ИМЯ».Затем мне нужно сохранять итоги каждого года, 2016 и 2017 гг. В отдельные файлы .csv.Я пользуюсь пандами.Не знаю, с чего начать.

Это то, что у меня есть сейчас из всего, что я собрал в результате исследований.

import pandas as pd

df2 = pd.read_csv("Data.csv")

gname = df2.groupby('NAME')

for NAME, Name_df2 in data:
    df2['DATE'] = pd.to_datetime(df2['DATE'])
    df2.groupby([df.DATE.dt.month,'NAME','SNOW']).mean().sort_values()

1 Ответ

1 голос
/ 13 апреля 2019

Нужно сначала предоставить нам пример данных. но это куда-то направлено:

import pandas as pd

df = pd.read_csv('data.csv')
df['DATE'] = pd.to_datetime(df['DATE'])
g = df.groupby([df.DATE.dt.year, df.DATE.dt.month, 'NAME'])['SNOW'].mean().reset_index().sort_values()

df_2016 = df.loc[df.DATE.dt.year == 2016]
df_2016.to_csv('2016 snow totals.csv', index=False)
df_2017 = df.loc[df.DATE.dt.year == 2017]
df_2017.to_csv('2017 snow totals.csv', index=False)

если у вас есть более 2 лет, вы должны разбить сгруппированный фрейм данных на список и выполнить итерацию по нему, как ..

for year in range(df.DATE.dt.year.min(), df.DATE.dt.year.max()):
    df.loc[df.DATE.dt.year == year].to_csv(year + '_snowfall.csv', index=False)
...