我正在设置一个excel文件格式的大约10 000行和55列的数据集。我挑选出要显示的相关列(数字和日期)。
现在,“Number”列有许多我想要计算的重复值,然后删除重复项。同时我想显示使用该号码的最新日期。
举个例子:
Column 1 = Numbers [445, 446, 447, 449, 445, 451, 445, 466, 449, ...]
Column 2 = Date [4/26/2019,3/26/2019,3/15/2019,2/26/2019,12/26/2018,12/16/2018,11/26/2018,11/6/2018,11/01/2019,... ]
445和447是重复的值; 445计数3次,449在不同日期计数2次。
我想要创建的表是:
Column 1 = Numbers [445, 446, 447, 449, 451, 466, ...]
Column 2 = Date [4/26/2019,3/26/2019,3/15/2019,2/26/2019,12/16/2018,11/6/2018,,...]
Column 3 = Count [3,1,1,2,1,1,...]
即保存在新表中的日期是使用该号码的最晚日期。
import pandas as pd
data = pd.read_excel(r'ImportedFile.xlsx', header = 0)
df = data[['Number','Date']]
sold_total = df.pivot_table(index=['Number'], aggfunc='size')
下一步是什么?谢谢
使用:
df['Count']=df.groupby('Column_1').transform('count')
df=df.drop_duplicates('Column_1')
print(df)
Column_1 Column_2 Count
0 445 2019-04-26 3
1 446 2019-03-26 1
2 447 2019-03-15 1
3 449 2019-02-26 2
5 451 2018-12-16 1
7 466 2018-11-06 1
尝试:
# thanks anky_91 for reset_index()
df.groupby('Number').Date.agg(['max', 'count']).reset_index()
输出:
+----+----------+---------------------+---------+
| | Number | max | count |
|----+----------+---------------------+---------|
| 0 | 445 | 2019-04-26 00:00:00 | 3 |
| 1 | 446 | 2019-03-26 00:00:00 | 1 |
| 2 | 447 | 2019-03-15 00:00:00 | 1 |
| 3 | 449 | 2019-11-01 00:00:00 | 2 |
| 4 | 451 | 2018-12-16 00:00:00 | 1 |
| 5 | 466 | 2018-11-06 00:00:00 | 1 |
+----+----------+---------------------+---------+