元组列表到DataFrame转换

mol*_*zzy 26 python tuples list pandas

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

[(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)

ely*_*ase 40

我想这就是你想要的:

>>> data = [('2013-01-16', 'AAPL', 1),
            ('2013-01-16', 'GOOG', 1.5),
            ('2013-01-17', 'GOOG', 2),
            ('2013-01-17', 'MSFT', 4),
            ('2013-01-18', 'GOOG', 3),
            ('2013-01-18', 'MSFT', 3)]

>>> df = pd.DataFrame(data, columns=['date', 'ticker', 'value'])
>>> df
         date ticker  value
0  2013-01-16   AAPL    1.0
1  2013-01-16   GOOG    1.5
2  2013-01-17   GOOG    2.0
3  2013-01-17   MSFT    4.0
4  2013-01-18   GOOG    3.0
5  2013-01-18   MSFT    3.0

>>> df.pivot('date', 'ticker', 'value')
ticker      AAPL  GOOG  MSFT
date                        
2013-01-16     1   1.5   NaN
2013-01-17   NaN   2.0     4
2013-01-18   NaN   3.0     3
Run Code Online (Sandbox Code Playgroud)

  • 这对我的问题不起作用,但是这样做: pd.DataFrame.from_records(data, , columns=['date', 'ticker', 'value']) (3认同)