Python Pandas — получают в среднем «СНЕГ» в месяц из каждого местоположения / «ИМЯ»

#python #pandas #csv #group-by #datasource

#python #pandas #csv #группировка по #источник данных

Вопрос:

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

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

 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. В чем ваш вопрос? Есть ли сообщение об ошибке? Как насчет того, чтобы предоставить нам несколько примеров данных?

2. для начала с этим немного не так. Я бы привел нам пример фрейма данных для работы, поскольку мы не можем получить доступ к Data.csv, поэтому создайте pd.DataFrame({'NAME':['Boston','Boston','New York', 'New York'], 'year':[2016, 2017, 2017, 2016], 'totals':[5.6, 66, 87, 55]}) что-то вроде или что-то в этом роде. Другое дело, что я не вижу, где вы где-либо определяете данные?

Ответ №1:

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

 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)
  

Комментарии:

1. С помощью python мы можем даже сжать этот 7-строчный код до 2 строк.. (насколько я могу идти ..)