基于日期的Python Pandas子集化

时间:2016-08-28 10:54:02

标签: python pandas subset

我有一个数据框(使用pandas),其中包含以下字段:

  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
  7. 我正在尝试使用“Datesf”作为过​​滤器将数据框子集化为新的数据帧。子集化应仅使用变量“Datesf”的Datesf.Date()部分,并将新数据帧“df”命名为df_date。 例如>新的子集化数据帧名称> df_02_08_16
     1.日期------------价格
     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技能在这个阶段相对基础。如果我的查询不那么具有挑战性,请原谅我。 非常感谢。 问候, 小号

1 个答案:

答案 0 :(得分: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))