首页 > 解决方案 > csv表堆栈到一列

问题描述

我是 python 新手,也是这个网站的新手。

我正在尝试将 csv 表导入我的 jupyter Notebook。问题是,标题(每天的季度时间)和第一列(日期)实际上属于彼此,应该放在一起(见图)。

csv文件的剪切

因此,我想收到一个包含 3 列的数据框:“日期”、“季度时间 ID”和所属的“价格”。

data = {'Date':  ['09.11.2020', '09.11.2020','09.11.2020','09.11.2020'],
    'Quarterly Hour ID': ['Hour 1 Q1', 'Hour 1 Q2','Hour 1 Q3', 'Hour 1 Q4'],
     'Price':[46,30,50,20]
    }

data = pd.DataFrame(data, columns = ['Date','Quarterly Hour ID','Price' ])

我找不到任何可以做到这一点的解决方案。我尝试了堆栈,它几乎完成了这项工作,但日期与价格一致。

我希望有人可以帮助我。我确信必须有一个简单的解决方案,我只是不知道在哪里寻找它。

标签: pythonpandascsvtranspose

解决方案


尝试:

df = (df.set_index('Date')
        .stack()
        .reset_index(drop=False)
        .rename(columns={'level_1': 'Quarterly Hour ID',
                         0: 'Price'}))

(我假设第一列名为Date:如果不是这种情况,您必须进行调整。)


推荐阅读