我有两个问题:
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]
但我无法从日期时间获得日期。
答案 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