Python 使用Pandas创建大型数据帧
我有上面的数据框。我的目标是创建一个大数据框,其中包含不同日期的所有仪器,时间范围从180到1。也就是说,如果我有100个日期为2012-04-18、2012-04-19、2012-05-17、2012-05-18、2012-08-15、2012-08-16的仪器,那么我需要创建一个总数为100*6*180的行,每个单元格按日期升序标记,但按时间降序标记。然后,我将把我现有的数据框与这个新创建的数据框合并,并为一些数据分析进行填充。我只能编写以下代码,但它不起作用:Python 使用Pandas创建大型数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有上面的数据框。我的目标是创建一个大数据框,其中包含不同日期的所有仪器,时间范围从180到1。也就是说,如果我有100个日期为2012-04-18、2012-04-19、2012-05-17、2012-05-18、2012-08-15、2012-08-16的仪器,那么我需要创建一个总数为100*6*180的行,每个单元格按日期升序标记,但按时间降序标记。然后,我将把我现有的数据框与这个新创建的数据框合并,并为一些数据分析进行填充。我只能编写以下代码,但它不起作用: df = pd.DataFr
df = pd.DataFrame([{'Instrument':'AAA', 'Date':'2012-04-18', 'Time_Bucket':180},
{'Instrument':'AAA', 'Date':'2012-04-18', 'Time_Bucket':100},
{'Instrument':'AAA', 'Date':'2012-04-18', 'Time_Bucket':67},
{'Instrument':'AAA', 'Date':'2012-04-18', 'Time_Bucket':33},
{'Instrument':'AAA', 'Date':'2012-04-18', 'Time_Bucket':1},
{'Instrument':'AAA', 'Date':'2012-04-19', 'Time_Bucket':175},
{'Instrument':'AAA', 'Date':'2012-04-19', 'Time_Bucket':110},
{'Instrument':'AAA', 'Date':'2012-04-19', 'Time_Bucket':30},
{'Instrument':'AAA', 'Date':'2012-04-19', 'Time_Bucket':1},
{'Instrument':'BBB', 'Date':'2012-04-18', 'Time_Bucket':180},
{'Instrument':'BBB', 'Date':'2012-04-18', 'Time_Bucket':150},
{'Instrument':'BBB', 'Date':'2012-04-18', 'Time_Bucket':10}])
你能帮忙吗?谢谢。使用并传递给DataFrame
构造函数:
df = pd.DataFrame({ 'Instrument' : 'AAA', 'BBB', 'CCC'},
{'Date': '2012-04-18', '2012-04-19', '2012-05-17', '2012-05-18', '2012-08-15', '2012-08-16'},
{'Time_Bucket': range(180, N-1 ,1))
使用并传递给
DataFrame
构造函数:
df = pd.DataFrame({ 'Instrument' : 'AAA', 'BBB', 'CCC'},
{'Date': '2012-04-18', '2012-04-19', '2012-05-17', '2012-05-18', '2012-08-15', '2012-08-16'},
{'Time_Bucket': range(180, N-1 ,1))
你需要吗?你需要吗?如果我想让时间按升序排列呢?我尝试了r=range(180,0,1),但它不起作用。非常感谢。@ShaunLim-然后使用
r=range(1181)
再问一个问题,有没有办法用0而不是1来开始时间桶?谢谢@ShaunLim-Surer=range(0181)
如果我想让时间桶按升序排列,该怎么办?我尝试了r=range(180,0,1),但它不起作用。非常感谢。@ShaunLim-然后使用r=range(1181)
再问一个问题,有没有办法用0而不是1来开始时间桶?谢谢@ShaunLim-Surer=范围(0181)
from itertools import product
df = pd.DataFrame(list(product(i, d, r)), columns=['Instrument','Date','Time_Bucket'])
print (df)
Instrument Date Time_Bucket
0 AAA 2012-04-18 180
1 AAA 2012-04-18 179
2 AAA 2012-04-18 178
3 AAA 2012-04-18 177
4 AAA 2012-04-18 176
... ... ...
3235 CCC 2012-08-16 5
3236 CCC 2012-08-16 4
3237 CCC 2012-08-16 3
3238 CCC 2012-08-16 2
3239 CCC 2012-08-16 1
[3240 rows x 3 columns]