如何将 pandas 数据框中的所有行附加到一个大行中?

How do I append all the rows in my pandas dataframe into one big row?

我想根据时间列创建新列。 我试图将每行中的最后 5 个值附加到第 0 行,然后使用时间列作为每列的 header。

index ticker date time vol open close high low

0 AAPL 2022-01-06 09:00 121611 174.78 174.00 175.08 173.76
1 AAPL 2022-01-06 10:00 83471 174.11 173.89 174.64 173.88
2 苹果 2022-01-06 11:00 76327 173.99 173.55 174.25 173.16
3 苹果 2022-01-06 12:00 83471 174.11 173.89 174.64 173.88

最终我希望它看起来像这样:

代码日期时间 vol9am open9am close9am high9am low9am vol10am open10am close10am high10am low10am

AAPL 2022-01-06 09:00 121611 174.78 174.00 175.08 173.76 83471 174.11 173.89 174.64 173.88

有什么建议吗?

Pandas' unstack 函数将实现这一点。这将为列名提供多索引;如果你只想要单层索引,你可以使用 to_flat_index

df = pd.DataFrame(columns = ['index', 'ticker', 'date', 'time', 'vol', 'open', 'close', 'high', 'low'], 
            data = [
                [0, 'AAPL', '2022-01-06', '09:00', 121611, 174.78, 174.00, 175.08, 173.76],
                [1, 'AAPL', '2022-01-06', '10:00', 83471, 174.11, 173.89, 174.64, 173.88],
                [2, 'AAPL', '2022-01-06', '11:00', 76327, 173.99, 173.55, 174.25, 173.16],
                [3, 'AAPL', '2022-01-06', '12:00', 83471, 174.11, 173.89, 174.64, 173.88],
            ]
            )

df.set_index(['ticker','date','time'])[['open','close']].unstack()

理想情况下,如果您可以 post 您的问题使用一些最低限度的工作代码,那么它会更容易复制 :)