在 Pandas 中,我如何将选择日期列转换为行
问题描述
我有一个相当烦人的 csv 文件,其中日期列需要使用 python 使用 pandas 移动到行中.
I have a rather annoying csv file in which date columns need to move into rows using python using pandas.
这是原始源 csv 文件的外观(注意实际上有 208 个销售和数量列,涵盖两年的每周数据):
Here is how the original source csv file looks (note there is actually 208 sales and volume columns covering two years of weekly data):
ProductID | StoreID | 24/06/2019_Sales | 01/07/2019_Sales | 24/06/2019_Vol | 01/07/2019_Vol |
---|---|---|---|---|---|
1 | 230 | 15.00 | 20.00 | 3 | 5 |
8 | 179 | 7.00 | 14.00 | 1 | 2 |
1 | 54 | 20.00 | 10.00 | 2 | 1 |
而我想要得到的是:
ProductID | StoreID | 日期. | 销售 | 卷 |
---|---|---|---|---|
1 | 230 | 01/07/2019 | 15.00 | 3 |
8 | 179 | 01/07/2019 | 7.00 | 1 |
1 | 54 | 01/07/2019 | 20.00 | 2 |
1 | 230 | 24/06/2019 | 20.00 | 5 |
8 | 179 | 24/06/2019 | 14.00 | 2 |
1 | 54 | 24/06/2019 | 10.00 | 1 |
我尝试过使用 melt 功能,但运气不佳.有什么想法吗?
I have tried using the melt function but I am not getting much luck. Any thoughts?
解决方案
相信我自己用下面的代码可能已经部分解决了:
I believe I may have partly solved it myself with the following code:
df2 = df.melt(['ProductID', 'StoreID'], var_name='Date', value_name='Measure')
df2[['Misc','Date']] = df2['Date'].str.split('_',expand=True)
然后我将合并记录.接受任何进一步的反馈.
I will then merge the records. Open to any further feedback.
相关文章