python:pandas dataframe中的列行

发布于 2025-02-13 05:19:53 字数 3234 浏览 2 评论 0原文

我有以下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

我希望DF看起来像这样: 谢谢!

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

I want the DF to look something like this:
enter image description here
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪之魂 2025-02-20 05:19:54

如果我把你说对了:

data.groupby(['metric_date', 'metric_name'])['value'].sum().unstack().fillna(0)

If I got you right:

data.groupby(['metric_date', 'metric_name'])['value'].sum().unstack().fillna(0)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文