【发布时间】:2019-11-21 09:44:08
【问题描述】:
我有一个发电厂列表,我将它们拆分为 for 循环并进行一些这样的过程。
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 个发电厂,我想将它们拆分为文件名。我想访问这些数据框。
例如: 当我打印“bergama”时,我只想看到一个包含 bergama 信息的数据框。
由于在 for 循环中创建了这个大数据框,我无法为小数据框指定名称,因此我无法在 for 循环后调用。因此,我不得不合并这些数据。我认为在这种情况下可能更有可能将其分开。
我该怎么做才能拆分此数据框并为其分配名称?
【问题讨论】:
-
所以如果是 IIUC,你想用
filename分割并创建一个数据框字典来访问? -
试试
dict(list(dataframes.groupby('filename'))) -
我认为最好的解决方案是这个,谢谢!