在Python中计算CSV中的每月总值

时间:2018-02-23 02:43:27

标签: python pandas

我试图在csv数据集中记录2.5年内的月度销售总额。

我开始使用SKU的交易历史记录的csv文件,该文件按日期(MM / DD / YYYY)排序,具有不同的状态,指示该项目是否已售出,存档(报价,未售出)或打开。我设法弄清楚如何只显示"出售"行,但无法弄清楚如何显示每月销售的总量。 这是我到目前为止所拥有的。

#Import Libraries
from pandas import DataFrame, read_csv
import pandas as pd

#Set Variables
fields = ['Date', 'Qty', 'Status']
file = r'kp4.csv'
df = pd.read_csv(file, usecols=fields)

# Filters Dataset to only display "Sold" items in Status column 
data = (df[df['Status'] == "Sold"])

print (data)

输出:

             Date Qty Status
4     2/21/2018    5   Sold
4     2/21/2018    5   Sold
11    2/16/2018   34   Sold
14    3/16/2018    1   Sold

我的理想输出看起来像这样:

         Date   Qty  Status
4     02/2018    39    Sold
5     03/2018     1    Sold

我尝试过groupy,操纵年份格式,为其他教程分配索引,除了错误之外什么都没有。如果有人能指出我正确的方向,我将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

IIUC

df.Date=pd.to_datetime(df.Date)
df=df.drop_duplicates()

df.groupby(df.Date.dt.strftime('%m/%Y')).agg({'Qty':'sum','Status':'first'})
Out[157]: 
         Qty Status
Date               
02/2018   39   Sold
03/2018    1   Sold