将大数据帧拆分为多个数据帧

2024-06-07 04:50:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个发电厂的清单,我把它们分成循环,然后做一些像这样的过程。你知道吗

list_of_pp = [v for k, v in pp_data.groupby('filename')]
        dataframes = pd.DataFrame()
        for pp in list_of_pp:
            pp = pp.groupby(['Date', 'filename']).sum().reset_index().set_index('Date').reindex(YF_date_range)
            pp['filename'] = pp['filename'].replace('', np.nan).ffill().bfill()
            pp.fillna(0, inplace = True)
            dataframes = dataframes.append(pp)


Output:

Date                filename     teklifId    fiyat miktar       SST      SAT
2019-11-10 00:00:00  bergama    205379348   620,68  -3,4    1055,15        0
2019-11-10 01:00:00  bergama    205385090   622,18  -2,9    902,161        0
2019-11-10 02:00:00  bergama    205392261   622,24  -0,8    248,896        0
2019-11-10 03:00:00  bergama    205398901   559,78  -0,6    307,879   -139,9
2019-11-10 04:00:00  bergama    205407003   559,98  -1,9    615,978   -83,99
2019-11-10 05:00:00  bergama    205414086   620,38  -2,8    1147,70   -279,1
2019-11-10 06:00:00  bergama    205420617   630,24  -2,9    913,848        0
2019-11-10 07:00:00  bergama    205426123   623,28  -2,6    1184,23   -373,9
2019-11-10 08:00:00  bergama    205432679   397,98    -4     795,96        0
2019-11-10 09:00:00  bergama    205440561      336 -10,3     1730,4        0
2019-11-10 10:00:00  bergama    205450946      400 -10,9       2180        0
2019-11-10 11:00:00  bergama    205460808      350  -3,5     1242,5     -630
2019-11-10 12:00:00  bergama    205468765   335,98  -2,5    587,965  -167,99
2019-11-10 13:00:00  bergama    205476320   335,98    -1    419,975  -251,98
2019-11-10 14:00:00  bergama    205482691   396,92  -1,2    238,152        0
2019-11-10 15:00:00  bergama    205488983      336   2,7          0     -453
2019-11-10 16:00:00  bergama    205495848    592,3     6          0    -1776
2019-11-10 17:00:00  bergama    205503077    623,9   5,6     218,36    -1965
2019-11-10 18:00:00  bergama    205511694    653,8     5     424,97    -2059
2019-11-10 19:00:00  bergama    205520491    656,9   1,3     164,22   -591,2
2019-11-10 20:00:00  bergama    205531685   650,98  -0,1     585,88   -553,3
2019-11-10 21:00:00  bergama    205545909    643,5  -1,1     804,37   -450,4
2019-11-10 22:00:00  bergama    205557633    638,2     4          0    -1276
2019-11-10 23:00:00  bergama    205567413    622,9   0,3     685,25   -778,7
2019-11-10 00:00:00  irmak      102689118    310,3    -1     310,34        0
2019-11-10 01:00:00  irmak              0        0     0          0        0
2019-11-10 02:00:00  irmak              0        0     0          0        0
2019-11-10 03:00:00  irmak      102699101   279,89  -0,6          1        0
                                      .
                                      .
                                      .
2019-11-10 23:00:00 tekirdag    302699101        0     0          0        0

每个文件名代表一个电厂,每个电厂数据都有相同的索引(“2019-11-10 00:00:00”到“2019-11-10 23:00:00”),但它们是顶部和底部的组合。在这个数据框中有将近50个发电厂,我想用一个名为filename的名称来拆分它们。我想访问这些数据帧。你知道吗

例如: 当我打印'bergama'时,我只想看到一个包含bergama信息的数据帧。你知道吗

因为在for循环中创建了这个大数据帧,所以我不能为小数据帧分配名称,所以不能在for循环之后调用。因此,我不得不把这些数据结合起来。我想在这种情况下把它分开可能会更好。你知道吗

如何拆分此数据帧并为其分配名称?你知道吗


Tags: of数据in名称fordateindexfilename
2条回答

据我所知,您在一个数据帧中拥有所有发电厂的记录,现在您想通过名称访问单个发电厂,这是在特性filemame中?你知道吗

您可以访问singel发电厂的这些专栏,例如“bergama”,只需说明:

print(df[df.filename=='bergama'])  

而且,这个问题已经被多次提出。有人能帮我做个标记吗?你知道吗

  1. 从filename列中获取唯一值并存储在list或set中。(dataframe.filename.unique文件) 2.传递列表或集合中的每个值以获得单独的文件。你知道吗

另一个观察:

(0-23->;bergama,24-48-irkmax等) 1.使用索引获取每个发电厂的单独文件。(使用for循环,步长=23,初始值=0,最终值=50*23)

相关问题 更多 >