如何将 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 您的问题使用一些最低限度的工作代码,那么它会更容易复制 :)
我想根据时间列创建新列。 我试图将每行中的最后 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 您的问题使用一些最低限度的工作代码,那么它会更容易复制 :)