gpt4 book ai didi

python - Pandas hub_table 使用给定的索引和列列表

转载 作者:行者123 更新时间:2023-11-30 23:04:31 24 4
gpt4 key购买 nike

我需要一些帮助来弄清楚如何将 pandas 数据帧转换为具有给定索引和列列表的表(而不是 pandas 自动选择索引和列的默认行为)。如果这是微不足道的,我们深表歉意。我是 python/pandas 新手。

考虑以下数据框:

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

关于python - Pandas hub_table 使用给定的索引和列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33677180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com