相关疑难解决方法(0)

元组列表到DataFrame转换

我有一个类似于下面的元组列表:

[(date1, ticker1, value1),(date1, ticker1, value2),(date1, ticker1, value3)]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为一个数据帧index=date1,columns=ticker1values = values.做这个的最好方式是什么?

编辑:

我的最终目标是使用datetimeindex创建一个DataFrame,其datetimeindex等于date1,其值在标有"ticker"的列中:

df = pd.DataFrame(tuples, index=date1)
Run Code Online (Sandbox Code Playgroud)

现在,使用以下内容生成元组:

tuples=list(zip(*prc_path))
Run Code Online (Sandbox Code Playgroud)

其中prc_path是一个带形状的numpy.ndarray(1000,1)

python tuples list pandas

26
推荐指数
1
解决办法
3万
查看次数

从大的元组/行列表中有效地构造Pandas DataFrame

我继承了以Stata .dta格式保存的数据文件.我可以用scikits.statsmodels genfromdta()函数加载它.这将我的数据放入一维NumPy数组中,其中每个条目都是一行数据,存储在24元组中.

In [2]: st_time = time.time(); initialload = sm.iolib.genfromdta("/home/myfile.dta"); ed_time = time.time(); print (ed_time - st_time)
666.523324013

In [3]: type(initialload)
Out[3]: numpy.ndarray

In [4]: initialload.shape
Out[4]: (4809584,)

In [5]: initialload[0]
Out[5]: (19901130.0, 289.0, 1990.0, 12.0, 19901231.0, 18.0, 40301000.0, 'GB', 18242.0, -2.368063, 1.0, 1.7783716290878204, 4379.355, 66.17669677734375, -999.0, -999.0, -0.60000002, -999.0, -999.0, -999.0, -999.0, -999.0, 0.2, 371.0)
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有一种有效的方法将其安排到Pandas DataFrame中.根据我的阅读,逐行构建DataFrame看起来效率很低......但我的选择是什么?

我写了一个非常慢的第一遍,它只是将每个元组作为单行DataFrame读取并附加它.只是想知道是否还有其他更好的东西.

python tuples pandas dta

17
推荐指数
1
解决办法
2万
查看次数

如何将列表转换为excel?

ordered_list = [ "Mon","Tue","Wed","Thu","Fri","Sat","Sun"]

wb = Workbook('dem.xlsx')
ws = wb.add_worksheet("New Sheet")

first_row=0
for header in ordered_list:
     col=ordered_list.index(header)
     ws.write(first_row,col,header)
col=1
for j in po:
    row=ordered_list.index(j[0])
    ws.write(col,row,j[1])
    col+=1
wb.close()
Run Code Online (Sandbox Code Playgroud)

我有列表 po = [('Mon', 6421), ('Tue', 6412), ('Wed', 12416), ('Thu', 23483), ('Fri', 8978), ('Sat' , 7657), ('Sun', 6555)]。我必须在 Excel 表中打印此列表,例如

mon 6421
Tue  6412
wed  12416
 '''
 '''
Sun  6555
Run Code Online (Sandbox Code Playgroud)

但我越来越像这样。谁能帮我解决这个问题。

   Mon  Tue Wed Thu Fri Sat Sun
  6421                      
       6412                 
           12416                
               23483            
                    8978        
                       7657 
                           6555
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
3万
查看次数

标签 统计

python ×3

pandas ×2

tuples ×2

dta ×1

list ×1