Python 使用给定的索引和列列表创建表
我想获得一些帮助,以了解如何将pandas数据帧透视到具有给定索引和列列表的表中(而不是pandas自动拾取索引和列的默认行为)。如果这是微不足道的,我道歉。我对蟒蛇/熊猫不熟悉 考虑以下数据帧:Python 使用给定的索引和列列表创建表,python,pandas,Python,Pandas,我想获得一些帮助,以了解如何将pandas数据帧透视到具有给定索引和列列表的表中(而不是pandas自动拾取索引和列的默认行为)。如果这是微不足道的,我道歉。我对蟒蛇/熊猫不熟悉 考虑以下数据帧: import pandas import numpy as np import datetime data = { 'ticker' : np.array(['AAPL', 'AAPL', 'IBM', 'X
import pandas
import numpy as np
import datetime
data = {
'ticker' : np.array(['AAPL',
'AAPL',
'IBM',
'XOM']),
'trade_date' : np.array([datetime.datetime(2015,01,01),
datetime.datetime(2015,04,02),
datetime.datetime(2099,01,01),
datetime.datetime(2015,03,01)]),
'price' : np.array([10.0, 15.6, 20.9, 13.5])
}
x = pandas.DataFrame(data)
在你的桌子上
x.pivot_table(values = "price", index = "trade_date", columns = "ticker")
结果是:
ticker AAPL IBM XOM
trade_date
2015-01-01 10.0 NaN NaN
2015-03-01 NaN NaN 13.5
2015-04-02 15.6 NaN NaN
2099-01-01 NaN 20.9 NaN
然而,我想要的是:
ticker A AA AAPL IBM XOM
trade_date
2015-01-01 NaN NaN 10.0 NaN NaN
2015-01-02 NaN NaN NaN NaN NaN
2015-03-01 NaN NaN NaN NaN 13.5
2015-04-02 NaN NaN 15.6 NaN NaN
2099-01-01 NaN NaN NaN 20.9 NaN
pivot_table()中似乎没有任何强制执行一组索引和列的规定
有没有快速的方法?数据集相当大,这将有助于快速完成 我会在旋转后重新编制索引:
In [11]: df = x.pivot_table(values = "price", index = "trade_date", columns = "ticker")
In [12]: df
Out[12]:
ticker AAPL IBM XOM
trade_date
2015-01-01 10.0 NaN NaN
2015-03-01 NaN NaN 13.5
2015-04-02 15.6 NaN NaN
2099-01-01 NaN 20.9 NaN
In [13]: df.reindex_axis(["A", "AA", "AAPL", "IBM", "XOM"], axis=1)
Out[13]:
ticker A AA AAPL IBM XOM
trade_date
2015-01-01 NaN NaN 10.0 NaN NaN
2015-03-01 NaN NaN NaN NaN 13.5
2015-04-02 NaN NaN 15.6 NaN NaN
2099-01-01 NaN NaN NaN 20.9 NaN