首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按月计算特定值

按月计算特定值
EN

Stack Overflow用户
提问于 2022-03-01 18:24:04
回答 2查看 54关注 0票数 2

我有一些数据要按月计算。我想要计数的列有三个不同的可能值,每个值代表不同的售出汽车。下面是我的dataframe示例:

代码语言:javascript
复制
Date                        Type_Car_Sold
2015-01-01 00:00:00                2
2015-01-01 00:00:00                1
2015-01-01 00:00:00                1
2015-01-01 00:00:00                3
...                               ...

我想要这样做,所以我有一个数据,统计每个月销售的每一种特定类型的汽车,如下所示:

代码语言:javascript
复制
Month       Car_Type_1        Car_Type_2        Car_Type_3         Total_Cars_Sold
1               15                12                17                     44
2                9                18                20                     47
...             ...              ...                ...                    ...

我到底该怎么做?我试过:

代码语言:javascript
复制
cars_sold = car_data['Type_Car_Sold'].groupby(car_data.Date.dt.month).agg('count')

但这只是一个月内所有汽车销量的总和,而不是按每种车型的总销量进行分解。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-01 18:46:27

也许不是最干净的解决方案,但这会让你离得很近

代码语言:javascript
复制
import pandas as pd
from datetime import datetime

df = pd.DataFrame({
    "Date": [datetime(2022,1,1), datetime(2022,1,1), datetime(2022,2,1), datetime(2022,2,1)],
    "Type": [1, 2, 1, 1],
})

df['Date'] = df["Date"].dt.to_period('M')
df['Value'] = 1

print(pd.pivot_table(df, values='Value', index=['Date'], columns=['Type'], aggfunc='count'))
代码语言:javascript
复制
Type       1    2
Date             
2022-01  1.0  1.0
2022-02  2.0  NaN
票数 3
EN

Stack Overflow用户

发布于 2022-03-02 13:44:04

或者,也可以将多个列传递给groupby

代码语言:javascript
复制
import pandas as pd
from datetime import datetime

df = pd.DataFrame({
    "Date": [datetime(2022,1,1), datetime(2022,1,1), datetime(2022,2,1), datetime(2022,2,1)],
    "Type": [1, 2, 1, 1],
})

df['Date'] = df["Date"].dt.to_period('M')
代码语言:javascript
复制
df.groupby(['Date', 'Type']).size()
代码语言:javascript
复制
Date     Type
2022-01  1       1
         2       1
2022-02  1       2
dtype: int64

这似乎有一个不幸的副作用,即排除零值的键。而且,结果是多索引行,而不是将索引作为rows+columns。

有关此方法的更多信息,请查看this question

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71313004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档