以日期时间格式对pandas数据帧的列进行分组

时间:2017-11-01 09:26:54

标签: python pandas datetime

我有两个问题:

1)是否有像pandas groupby这样但适用于列(df.columns,而不是其中的数据)?

2)如何从日期时间对象中提取“日期”?

我有很多pandas数据帧(或csv文件),它们有一个位置列(我用作索引),然后是在不同时间在每个位置测量的值列。列标题是日期时间对象(或pd.to_datetime)。 我想从同一天提取数据并将它们保存到一个新文件中。

以下是两个此类数据框的简单示例。

DF1:

     2015-03-13 14:37:00  2015-03-13 14:38:00  2015-03-13 14:38:15  \
0.0             24.49393             24.56345             24.50552   
0.5             24.45346             24.54904             24.60773   
1.0             24.46216             24.55267             24.74365   
1.5             24.55414             24.63812             24.80463   
2.0             24.68079             24.76758             24.78552   
2.5             24.79236             24.83005             24.72879   
3.0             24.83691             24.78308             24.66727   
3.5             24.78452             24.73071             24.65085   
4.0             24.65857             24.79398             24.72290   
4.5             24.56390             24.93515             24.83267   
5.0             24.62161             24.96939             24.87366   

     2015-05-19 11:33:00  2015-05-19 11:33:15  2015-05-19 11:33:30  
0.0             8.836121             8.726685             8.710449  
0.5             8.732880             8.742462             8.687408  
1.0             8.881165             8.935120             8.925903  
1.5             9.043396             9.092651             9.204041  
2.0             9.080902             9.153839             9.329681  
2.5             9.128815             9.183777             9.296509  
3.0             9.191254             9.121643             9.207397  
3.5             9.131866             8.975372             9.160248  
4.0             8.966003             8.951813             9.195221  
4.5             8.846924             9.074982             9.264099  
5.0             8.848663             9.101593             9.283081  

和df2:

     2015-05-19 11:33:00  2015-05-19 11:33:15  2015-05-19 11:33:30  \
0.0             8.836121             8.726685             8.710449   
0.5             8.732880             8.742462             8.687408   
1.0             8.881165             8.935120             8.925903   
1.5             9.043396             9.092651             9.204041   
2.0             9.080902             9.153839             9.329681   
2.5             9.128815             9.183777             9.296509   
3.0             9.191254             9.121643             9.207397   
3.5             9.131866             8.975372             9.160248   
4.0             8.966003             8.951813             9.195221   
4.5             8.846924             9.074982             9.264099   
5.0             8.848663             9.101593             9.283081   

     2015-05-23 12:25:00  2015-05-23 12:26:00  2015-05-23 12:26:30  
0.0             10.31052            10.132660            10.176910  
0.5             10.26834            10.086910            10.252720  
1.0             10.27393            10.165890            10.276670  
1.5             10.29330            10.219090            10.335910  
2.0             10.24432            10.193940            10.406430  
2.5             10.11618            10.157470            10.323120  
3.0             10.02454            10.110720            10.115360  
3.5             10.08716            10.010680             9.997345  
4.0             10.23868             9.905670            10.008090  
4.5             10.27216             9.879425             9.979645  
5.0             10.10693             9.919800             9.870361  

df1的数据来自3月13日和5月19日,df2的数据来自5月19日和5月23日。从包含3天数据的这两个数据帧中,我想得到3个数据帧(或csv文件或任何其他对象),每天一个。 (对于一个现实生活中的例子,将行数,列数和文件数乘以几百。)

在最坏的情况下,我可以在单独的列表中指定日期,但我仍然无法从数据框中提取这些日期。 我确实想到了一个嵌套循环

for df in dataframes: for d in dates: new_df = df[d]

但我无法从日期时间获得日期。

1 个答案:

答案 0 :(得分:1)

按列添加concat所有R,然后将groupby对象转换为strftime date n= session locID depth org_length replica length 03-07-2017 3 1 C1 0,5 10 blue 9,92 03-07-2017 3 1 C1 2,5 10 blue 10,33 03-07-2017 3 1 C1 4,5 10 blue 9,78 03-07-2017 3 1 C1 6,5 10 blue 10,45 03-07-2017 3 1 C1 0,5 10 green 9,89 03-07-2017 3 1 C1 2,5 10 green 10,32 03-07-2017 3 1 C1 4,5 10 green 9,86 03-07-2017 3 1 C1 6,5 10 green 10,28 03-07-2017 3 1 C1 0,5 10 purple 10,36 03-07-2017 3 1 C1 4,5 10 purple 10,35 03-07-2017 3 1 C1 6,5 10 purple 10,47 03-07-2017 3 1 C1 0,5 10 red 10,48 03-07-2017 3 1 C1 2,5 10 red 9,64 03-07-2017 3 1 C1 4,5 10 red 10,08 03-07-2017 3 1 C1 6,5 10 red 10,37 03-07-2017 3 1 C1 0,5 15 blue 15,51 03-07-2017 3 1 C1 2,5 15 blue 14,84 03-07-2017 3 1 C1 4,5 15 blue 15,53 03-07-2017 3 1 C1 6,5 15 blue 14,54 03-07-2017 3 1 C1 0,5 15 green 14,89 03-07-2017 3 1 C1 2,5 15 green 15,29 03-07-2017 3 1 C1 4,5 15 green 14,97 03-07-2017 3 1 C1 6,5 15 green 14,77 03-07-2017 3 1 C1 0,5 15 purple 15,04 03-07-2017 3 1 C1 4,5 15 purple 15,17 03-07-2017 3 1 C1 6,5 15 purple 15,33 03-07-2017 3 1 C1 0,5 15 red 14,86 03-07-2017 3 1 C1 2,5 15 red 15,27 03-07-2017 3 1 C1 4,5 15 red 14,55 03-07-2017 3 1 C1 6,5 15 red 15,12 13-07-2017 13 1 C1 2,5 10 purple 10,52 13-07-2017 13 1 C1 2,5 15 purple 15,62 08-08-2017 39 1 C1 0,5 10 blue 11,08 08-08-2017 39 1 C1 2,5 10 blue 12,95 08-08-2017 39 1 C1 4,5 10 blue 10,67 08-08-2017 39 1 C1 6,5 10 blue 10,38 08-08-2017 39 1 C1 0,5 10 green 10,91 08-08-2017 39 1 C1 2,5 10 green 12,56 08-08-2017 39 1 C1 4,5 10 green 10,81 08-08-2017 39 1 C1 6,5 10 green 10,69 08-08-2017 39 1 C1 0,5 10 purple 11,25 08-08-2017 39 1 C1 2,5 10 purple 10,83 08-08-2017 39 1 C1 4,5 10 purple 10,37 08-08-2017 39 1 C1 6,5 10 purple 10,5 08-08-2017 39 1 C1 0,5 10 red 10,45 08-08-2017 39 1 C1 2,5 10 red 11,39 08-08-2017 39 1 C1 4,5 10 red 12,02 08-08-2017 39 1 C1 6,5 10 red 10,32 08-08-2017 39 1 C1 0,5 15 blue 15,95 08-08-2017 39 1 C1 2,5 15 blue 15,75 08-08-2017 39 1 C1 4,5 15 blue 15,48 08-08-2017 39 1 C1 6,5 15 blue 14,8 08-08-2017 39 1 C1 0,5 15 green 16,37 08-08-2017 39 1 C1 2,5 15 green 16,66 08-08-2017 39 1 C1 4,5 15 green 15,37 08-08-2017 39 1 C1 6,5 15 green 14,67 08-08-2017 39 1 C1 0,5 15 purple 14,96 08-08-2017 39 1 C1 2,5 15 purple 15,49 08-08-2017 39 1 C1 4,5 15 purple 15,15 08-08-2017 39 1 C1 6,5 15 purple 15,67 08-08-2017 39 1 C1 0,5 15 red 16,21 08-08-2017 39 1 C1 2,5 15 red 15,19 08-08-2017 39 1 C1 4,5 15 red 15,14 08-08-2017 39 1 C1 6,5 15 red 15,54 05-09-2017 67 1 C1 0,5 15 blue 15,94 05-09-2017 67 1 C1 2,5 15 blue 15,68 05-09-2017 67 1 C1 4,5 15 blue 15,48 05-09-2017 67 1 C1 6,5 15 blue 14,5 05-09-2017 67 1 C1 0,5 15 green 16,33 05-09-2017 67 1 C1 2,5 15 green 16,7 05-09-2017 67 1 C1 4,5 15 green 15,33 05-09-2017 67 1 C1 6,5 15 green 14,62 05-09-2017 67 1 C1 0,5 15 purple 14,96 05-09-2017 67 1 C1 2,5 15 purple 15,58 05-09-2017 67 1 C1 4,5 15 purple 15,17 05-09-2017 67 1 C1 6,5 15 purple 15,64 05-09-2017 67 1 C1 0,5 15 red 16,17 05-09-2017 67 1 C1 2,5 15 red 15,17 05-09-2017 67 1 C1 4,5 15 red 15,1 05-09-2017 67 1 C1 6,5 15 red 15,57 05-09-2017 67 1 C1 0,5 10 blue 11,08 05-09-2017 67 1 C1 2,5 10 blue 12,95 05-09-2017 67 1 C1 4,5 10 blue 11,15 05-09-2017 67 1 C1 6,5 10 blue 10,47 05-09-2017 67 1 C1 0,5 10 green 10,91 05-09-2017 67 1 C1 2,5 10 green 12,52 05-09-2017 67 1 C1 4,5 10 green 10,88 05-09-2017 67 1 C1 6,5 10 green 10,7 05-09-2017 67 1 C1 0,5 10 purple 11,3 05-09-2017 67 1 C1 2,5 10 purple 10,93 05-09-2017 67 1 C1 4,5 10 purple 10,35 05-09-2017 67 1 C1 6,5 10 purple 10,51 05-09-2017 67 1 C1 0,5 10 red 10,45 05-09-2017 67 1 C1 2,5 10 red 11,37 05-09-2017 67 1 C1 4,5 10 red 12,03 05-09-2017 67 1 C1 6,5 10 red 10,2 29-09-2017 91 1 C1 0,5 15 blue 15,95 29-09-2017 91 1 C1 2,5 15 blue 15,64 29-09-2017 91 1 C1 4,5 15 blue 15,47 29-09-2017 91 1 C1 6,5 15 blue 14,55 29-09-2017 91 1 C1 0,5 15 green 16,37 29-09-2017 91 1 C1 2,5 15 green 16,72 29-09-2017 91 1 C1 4,5 15 green 15,33 29-09-2017 91 1 C1 6,5 15 green 14,61 29-09-2017 91 1 C1 0,5 15 purple 14,81 29-09-2017 91 1 C1 2,5 15 purple 15,54 29-09-2017 91 1 C1 4,5 15 purple 15,3 29-09-2017 91 1 C1 6,5 15 purple 15,65 29-09-2017 91 1 C1 0,5 15 red 16,19 29-09-2017 91 1 C1 2,5 15 red 15,14 29-09-2017 91 1 C1 4,5 15 red 15,07 29-09-2017 91 1 C1 6,5 15 red 15,51 29-09-2017 91 1 C1 0,5 10 blue 11,2 29-09-2017 91 1 C1 2,5 10 blue 12,92 29-09-2017 91 1 C1 4,5 10 blue 11,51 29-09-2017 91 1 C1 6,5 10 blue 10,43 29-09-2017 91 1 C1 0,5 10 green 10,89 29-09-2017 91 1 C1 2,5 10 green 12,5 29-09-2017 91 1 C1 4,5 10 green 10,67 29-09-2017 91 1 C1 6,5 10 green 10,85 29-09-2017 91 1 C1 0,5 10 purple 11,28 29-09-2017 91 1 C1 2,5 10 purple 11,14 29-09-2017 91 1 C1 4,5 10 purple 10,95 29-09-2017 91 1 C1 6,5 10 purple 10,61 29-09-2017 91 1 C1 0,5 10 red 10,44 29-09-2017 91 1 C1 2,5 10 red 11,96 29-09-2017 91 1 C1 4,5 10 red 12,67 29-09-2017 91 1 C1 6,5 10 red 10,18 字符串DataFrames

keys