python:pandas dataframe中的列行
我有以下dataFrame:
data.head()
OUT:
metric_name metric_date warehouse value week year day
0 Crossdock Transfer Out 2022-05-10 WR1 1.370313e+06 19 2022 2
21 New Vendor Freight 2022-04-19 WR1 1.583337e+06 16 2022 2
59 Crossdock Transfer Out 2021-12-26 WR1 3.805000e+03 51 2021 0
80 New Vendor Freight 2021-12-30 WR1 2.832327e+06 52 2021 4
90 Crossdock Transfer In 2022-05-22 WR1 0.000000e+00 20 2022 0
... ... ... ... ... ... ... ...
127699 LF Forecasted New Crossdock Transfer Out 2021-11-01 WR1 2.595843e+06 44 2021 1
“ Metric_name”列有不同的指标。要拥有一个更好的数据集用于时间序列预测,我想转换我的数据框架。我希望“ metric_name”中的每个度量作为数据集中的新列。
请参阅“ metric_name”中的所有不同指标:
data.metric_name.value_counts()
out:
LF Forecasted End Vendor Freight + End Transfer In Backlog 364
LF Forecasted New Crossdock Transfer Out 364
LF Forecasted New Vendor Freight 364
LF Forecasted New Crossdock Transfer In 364
Forecasted New Crossdock Transfer Out 359
Forecasted End Vendor Freight + End Transfer In Backlog 359
Forecasted New Crossdock Transfer In 359
Forecasted New Vendor Freight 359
Crossdock Transfer Out 345
New Vendor Freight 345
Crossdock Transfer In 345
End Vendor Freight + End Transfer In Backlog 345
Name: metric_name, dtype: int64
我该怎么办?
我尝试了这个,但这并没有给我价值观,只是计数:
bhx4.groupby('metric_date')['metric_name'].value_counts().unstack()
metric_name Crossdock Transfer In Crossdock Transfer Out End Vendor Freight + End Transfer In Backlog Forecasted End Vendor Freight + End Transfer In Backlog Forecasted New Crossdock Transfer In Forecasted New Crossdock Transfer Out Forecasted New Vendor Freight LF Forecasted End Vendor Freight + End Transfer In Backlog LF Forecasted New Crossdock Transfer In LF Forecasted New Crossdock Transfer Out LF Forecasted New Vendor Freight New Vendor Freight
metric_date
2021-07-25 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-26 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-27 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-28 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-29 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
I have following dataframe:
data.head()
Out:
metric_name metric_date warehouse value week year day
0 Crossdock Transfer Out 2022-05-10 WR1 1.370313e+06 19 2022 2
21 New Vendor Freight 2022-04-19 WR1 1.583337e+06 16 2022 2
59 Crossdock Transfer Out 2021-12-26 WR1 3.805000e+03 51 2021 0
80 New Vendor Freight 2021-12-30 WR1 2.832327e+06 52 2021 4
90 Crossdock Transfer In 2022-05-22 WR1 0.000000e+00 20 2022 0
... ... ... ... ... ... ... ...
127699 LF Forecasted New Crossdock Transfer Out 2021-11-01 WR1 2.595843e+06 44 2021 1
There are different metrics at column "metric_name" with its own value. To have a better dataset for time series forecasting I want to convert my Dataframe. I want every single metric in "metric_name" as new column in the dataset.
See here all different metrics in "metric_name":
data.metric_name.value_counts()
Out:
LF Forecasted End Vendor Freight + End Transfer In Backlog 364
LF Forecasted New Crossdock Transfer Out 364
LF Forecasted New Vendor Freight 364
LF Forecasted New Crossdock Transfer In 364
Forecasted New Crossdock Transfer Out 359
Forecasted End Vendor Freight + End Transfer In Backlog 359
Forecasted New Crossdock Transfer In 359
Forecasted New Vendor Freight 359
Crossdock Transfer Out 345
New Vendor Freight 345
Crossdock Transfer In 345
End Vendor Freight + End Transfer In Backlog 345
Name: metric_name, dtype: int64
What can I do to solve this?
I tried this, but it is not giving me the values, just the counts:
bhx4.groupby('metric_date')['metric_name'].value_counts().unstack()
metric_name Crossdock Transfer In Crossdock Transfer Out End Vendor Freight + End Transfer In Backlog Forecasted End Vendor Freight + End Transfer In Backlog Forecasted New Crossdock Transfer In Forecasted New Crossdock Transfer Out Forecasted New Vendor Freight LF Forecasted End Vendor Freight + End Transfer In Backlog LF Forecasted New Crossdock Transfer In LF Forecasted New Crossdock Transfer Out LF Forecasted New Vendor Freight New Vendor Freight
metric_date
2021-07-25 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-26 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-27 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-28 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2021-07-29 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我把你说对了:
If I got you right: