【发布时间】:2019-10-14 11:41:38
【问题描述】:
我有两张这样的桌子:
Customr Issue Date_Issue
1 1 01/01/2019
1 2 03/06/2019
1 3 04/07/2019
1 4 13/09/2019
2 5 01/02/2019
2 6 16/03/2019
2 7 20/08/2019
2 8 30/08/2019
2 9 01/09/2019
3 10 01/02/2019
3 11 03/02/2019
3 12 05/03/2019
3 13 20/04/2019
3 14 25/04/2019
3 15 13/05/2019
3 16 20/05/2019
3 17 25/05/2019
3 18 01/06/2019
3 19 03/07/2019
3 20 20/08/2019
Customr Date_Survey df_Score
1 06/04/2019 10
2 10/06/2019 9
3 01/08/2019 3
并且我需要获取每个客户在调查日期前三个月内的问题数量。
但我无法在 Pandas 中获取此查询。
#first table
index_survey = [0,1,2]
Customer_Survey = pd.Series([1,2,3],index= index_survey)
Date_Survey = pd.Series(["06/04/2019","10/06/2019","01/08/2019"])
df_Score=[10, 9, 3]
df_survey = pd.DataFrame(Customer_Survey,columns = ["Customer_Survey"])
df_survey["Date_Survey"] =Date_Survey
df_survey["df_Score"] =df_Score
#And second table
index_survey = [0,1,2]
Customer_Survey = pd.Series([1,2,3],index= index_survey)
Date_Survey = pd.Series(["06/04/2019","10/06/2019","01/08/2019"])
df_Score=[10, 9, 3]
df_survey = pd.DataFrame(Customer_Survey,columns = ["Customer_Survey"])
df_survey["Date_Survey"] =Date_Survey
df_survey["df_Score"] =df_Score
我期待结果
Custr Date_Survey Score Count_issues
1 06/04/2019 10 0
2 10/06/2019 9 1
3 01/08/2019 3 5
【问题讨论】:
-
在 Microsoft Access 中,查询将是 SELECT Survey.Customer_Survey、Survey.Date_Survey、Survey.df_Score、Count(Issues.Issue) AS CuentaDeIssue FROM Survey LEFT JOIN Issues ON Survey.Customer_Survey = Issues.Customer WHERE (((Issues.Date_Issue) DateAdd("m",-3,([Survey].[Date_Survey])) 和 DateAdd("m",0,([Survey].[Date_Survey])))) GROUP BY Survey.Customer_Survey、Survey.Date_Survey、Survey.df_Score;
标签: python pandas merge where-clause