【发布时间】:2023-01-27 17:13:57
【问题描述】:
我的表包含大约 100k 个带有日期的唯一值,我有另一个表包含全年的 8M 记录我需要的是计算第一个表中的每个值在特定时间内在大表上重复了多少次(每行提到的日期后 30 天)
表一:唯一值
| num | Close Time | max |
|---|---|---|
| 1110 | 01-11-2022 8:47:00 AM | 01-12-2022 8:47:00 AM |
| 1111 | 02-11-2022 8:47:00 AM | 02-12-2022 8:47:00 AM |
| 1112 | 03-11-2022 8:47:00 AM | 03-12-2022 8:47:00 AM |
表二:包含唯一值和重复值
Number Close Time
1110 01-11-22 8:47
1110 02-11-22 8:47
1110 03-11-22 8:47
1111 02-11-22 8:47
1111 05-11-22 8:47
1111 06-12-22 8:47
1112 03-11-22 8:47
1112 08-12-22 8:47
1112 09-12-22 8:47
我需要如下结果,稍后我需要自己获取原始数据 第一个包括我正在寻找的价值
Result Count
1110 3
1111 2
1112 1
我做了下面的操作,首先提取了我需要稍后计算的唯一值
import pandas as pd
CREATED = pd.read_table(r'C:\Users\Desktop\2022.txt', sep=',',encoding='cp1256',low_memory=False)
Jan = CREATED[CREATED.Close_Month == 1]
Jan.sort_values(by=['customer','Time'])
janu= Jan.drop_duplicates(subset='customer', keep='first')
janu.to_csv(r'C:\Users\Desktop\Jan.csv',encoding='cp1256', index=None )
我尝试了下面的计数,但我不知道如何为日期间隔添加条件
1-
janu['count'] = janu['num'].map(CREATED['num'].value_counts())
另一种方式
import pandas as pd
import datetime
A = pd.read_table(r'C:\Users\Ahmed\Desktop\1.csv',sep=',',encoding='cp1256',low_memory=False)
B = pd.read_table(r'C:\Users\Ahmed\Desktop\2.csv',sep=',',encoding='cp1256',low_memory=False)
for value in A['num']:
x = B[B['num'] == value]
print(x)
【问题讨论】:
标签: python conditional-statements