Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Pandas创建大型数据帧_Python_Pandas_Dataframe - Fatal编程技术网

Python 使用Pandas创建大型数据帧

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

我有上面的数据框。我的目标是创建一个大数据框,其中包含不同日期的所有仪器,时间范围从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.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-Sure
r=range(0181)
如果我想让时间桶按升序排列,该怎么办?我尝试了r=range(180,0,1),但它不起作用。非常感谢。@ShaunLim-然后使用
r=range(1181)
再问一个问题,有没有办法用0而不是1来开始时间桶?谢谢@ShaunLim-Sure
r=范围(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]