我正在使用e-commerce dataset,并且具有以下代码段
normal-data
与输出
data["grossprice"] = data["UnitPrice"]*data["Quantity"]
total_date = data.groupby(["CustomerID","InvoiceDate"])["grossprice"].sum()
结果发现CustomerID InvoiceDate
12747 2010-12-01 NaN
2010-12-02 NaN
2010-12-03 NaN
2010-12-05 [30.599999999999998, 15.299999999999999, 27.04...
2010-12-06 NaN
在CustomerID
日期没有任何交易。
NaN
仅可用于对观察到的组合进行分组(如果有任何石斑鱼是分类的),这似乎解决了我的问题。我可以在没有observed
或CustomerID
的情况下进行调用,它似乎可以正常工作。我只是在这里很幸运,还是可以像这样使用它而不会得到意想不到的结果?InvoiceDate
答案 0 :(得分:0)
我刚刚下载了您的data.csv文件,如果我运行以下代码,它将为我提供正确的输出。
import numpy as np
import pandas as pd
path = "C:/Users/Frank/Downloads/data.csv"
data = pd.read_csv(path, encoding = "ISO-8859-1")
data["grossprice"] = data["UnitPrice"]*data["Quantity"]
total_date = data.groupby(["CustomerID","InvoiceDate"])["grossprice"].sum()
print(total_date.loc[12747])
给出以下输出
InvoiceDate
1/20/2011 14:01 303.04
10/4/2011 8:26 675.38
11/17/2011 17:13 312.73
12/13/2010 10:41 347.71
12/5/2010 15:38 358.56
12/7/2011 14:34 438.50
3/1/2011 14:53 310.78
5/25/2011 9:57 328.35
5/5/2011 15:31 442.96
6/28/2011 10:06 376.30
8/22/2011 10:38 301.70
Name: grossprice, dtype: float64
这里是整个total_date
:
CustomerID InvoiceDate
12346.0 1/18/2011 10:01 77183.60
1/18/2011 10:17 -77183.60
12347.0 1/26/2011 14:30 475.39
10/31/2011 12:25 1294.32
12/7/2010 14:57 711.79
...
18283.0 7/14/2011 13:20 2.50
9/5/2011 12:35 134.90
18287.0 10/12/2011 10:23 1001.32
10/28/2011 9:29 70.68
5/22/2011 10:39 765.28
Name: grossprice, Length: 22034, dtype: float64