【问题标题】:How to ungroup Column groups and covert them into rows using pandas?如何取消分组列组并使用熊猫将它们转换为行?
【发布时间】:2021-03-11 10:40:43
【问题描述】:

我从下载为多只股票下载的股票数据中获得了下表。我使用了以下代码

i = ['NTPC.NS', 'GAIL.NS']
stock = yf.download(tickers=i, start='2021-01-11', end='2021-03-10', interval = '5m', group_by = 'tickers')

输出数据框如下所示

但我希望输出是这样的

【问题讨论】:

    标签: python-3.x pandas dataframe pandas-groupby


    【解决方案1】:

    第一级使用DataFrame.stack,然后重命名索引名称并将MultiIndex的最后一级转换为DataFrame.reset_index的列:

    df = stock.stack(level=0).rename_axis(['Datetime','stockname']).reset_index(level=-1)
    #if necessary change order of columns
    df = df[df.columns.tolist()[1:] + df.columns.tolist()[:1]]
    

    【讨论】:

    • ValueError: Length of names must match number of levels in MultiIndex. 使用第一行代码时出现此错误
    • @AnirudhMurali - 你是对的,所以答案已被编辑。
    猜你喜欢
    • 2020-10-05
    • 2016-03-09
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2020-03-23
    相关资源
    最近更新 更多