python - 如何按日期排序,然后按日期添加另一列的总数
问题描述
如何获取一行日期并按月份过滤它们,并添加每个月的总销售额?
这段代码正试图在一月份完成。
df['Release Date'] = pd.to_datetime(df['Release Date'])
print(df.loc[df['Release Date'].dt.month == 1][df['Tickets Sold'].sum())
df['Release Date'] = pd.to_datetime(df['Release Date'])
print(df.loc[df['Release Date'].dt.month == 1][df['Tickets Sold'].sum())
0 1,000 卢比纸币 ... 277 1 10 Cloverfield Lane ... 8333294 2 13 小时:班加西的秘密士兵 ... 6110198 3 2016 奥斯卡短裤 ... 325643 4 20 世纪女性 ... 20644
试图将每个月售出的门票总数加起来。
解决方案
所以你试图得到每个月的总数。然后,您是否也尝试对这些总数进行一些处理?
虚拟数据:
import pandas as pd
import numpy as np
# dummy data
date_range = pd.date_range('2019-01-01', '2019-03-31', freq='D')
df = pd.DataFrame(
np.random.randint(1, 20, (date_range.shape[0], 1)),
index=date_range,
columns=['Tickets Sold'])
df['Release Date'] = df.index
df.reset_index(inplace=True, drop=True)
>>> print(df.head())
Tickets Sold Release Date
0 15 2019-01-01
1 7 2019-01-02
2 5 2019-01-03
3 5 2019-01-04
4 19 2019-01-05
要获得总数,只需将Release Date
列设为并每月index
使用一次。resample
M
# set column release date as index and resample.
df.set_index('Release Date', inplace=True)
>>> print(df.resample('M').sum())
Tickets Sold
Release Date
2019-01-31 305
2019-02-28 278
2019-03-31 322
推荐阅读
- java - 调用 MultipleAccountPublicClientApplication() 时,MSAL 引发 MsalClientException
- python - AttributeError: 'list' 对象在尝试爬取 metro.co.kr 时没有属性 'find_element'
- python - 在python中使用pandas过滤计算值
- python - Python Flask 自动生成 Swagger/OpenAPI 3.0
- sql - sql中的多行到一个逗号分隔值
- kubernetes - K8s pod 与连接在同一网络中的相机的连接
- swift - swift5中的不区分大小写搜索?
- latex - gnuplot中的LaTeX公式
- qt - 如何在 Quick3d 中使用图像控制节点的纹理大小?
- pandas - Pandas read_csv 大文件(50gb)问题