2016-08-28 3 views
0

я получил dataframe (с помощью панд), который содержит следующие поля:Python Панда Подменит на основе дат

  1. Datesf ----------- Цену
  2. 02/08/16 17: 28--10
  3. 02/08/16 17: 29--20
  4. 02/08/16 17: 30--30
  5. 03/08/16 09: 00--40
  6. 04/08/16 09: 00--50

Я пытаюсь подмножество кадра данных в новые данные, используя «Датыf» в качестве фильтра. Подмножество должно использовать только Datesf.Date() часть переменной «Datesf» и назвать новый dataframe «df» как df_date. , например> новый subsetted имя Dataframe> df_02_08_16
1. Datesf ------------ Цена
2. 02/08/16 17: 28--10 3. 02/08/16 17: 29--20 4. 02/08/16 17: 30--30

Я попытался, используя следующий код, но очевидно, что мне не хватает из довольно несколько битов:

datelist= df["Datesf"].map(pd.Timestamp.date).unique() 

for d in datelist: 
    print d 
    df.loc[df['Datesf'] == '%s' % d] 

На этом этапе мои навыки python относительно просты. так что простите меня, если мой запрос не так сложный. Большое спасибо. С уважением, S

ответ

1

Это должно делать работу.

import pandas as pd 
df = pd.DataFrame([['02/08/16 17:28',1], ['02/08/16 17:28',10],['02/08/16 17:28',100],['03/08/16 17:28',101],['04/08/16 17:28',103]], columns=['Datesf', 'Price']) 
df.Datesf = pd.to_datetime(df.Datesf) 

unique_dates = df.Datesf.unique() 
data_frame_dict = {elem : pd.DataFrame for elem in unique_dates} 

for n, key in enumerate(data_frame_dict.keys()): 
    print ' ==== dataframe %d ======' % n 
    data_frame_dict[key] = df[:][df.Datesf == key] 
    print data_frame_dict[key] 
    data_frame_dict[key].to_csv('%s.csv'%str(key)) 
+0

Здравствуйте, Qmaruf, ваш код работает отлично. Единственное исключение состоит в том, что код подмножает наборы данных в минутах. Я хотел, чтобы подмножество данных выполнялось в соответствии с датами, а не временем. Это означает, что должно быть создано всего 3 кадра данных: dataframe1 должен иметь дату 02/08/16 с тремя наблюдениями. Dataframe2 должен иметь дату 03/08/16 с одним наблюдением, а dataframe3 должен иметь дату 04/08/16 с одним наблюдением – Seb

+0

Вы проверили отредактированный код? Он создает три разных файла csv в соответствии с вашими потребностями. – qmaruf

+0

Спасибо. Я до сих пор не знаю, почему это не работает для моего фреймворка данных, но поскольку он работает с вашим фреймворком данных, я уверен, что делаю небольшую ошибку – Seb

Смежные вопросы