我的问题有点类似于this one,但并不完全。我有以下类型的结构当尝试删除重复项时,熊猫只删除某些列值
| id | entrydate | sales | purchases |
| -- | -----------| ----- | --------- |
| 1 | 05/03/2017 | 10 | 1 |
| 2 | 05/03/2017 | 20 | 2 |
| 3 | 05/03/2017 | 30 | 3 |
| 1 | 05/03/2017 | 40 | 1 |
我读入数据帧此的CSV,和我想要得到销售和购买的每日汇总(个人ID无所谓,只是每日汇总)。
首先,我需要删除重复项。这使我绊倒了,因为如果你拿上面的例子,对于id 1,同一天有两个条目,但purchases
列中的多个条目被认为是重复的,而sales
列中的多个条目是有效的,所以正确的分组会导致
| id | entrydate | sales | purchases |
| -- | -----------| ----- | --------- |
| 1 | 05/03/2017 | 50 | 1 |
| 2 | 05/03/2017 | 20 | 2 |
| 3 | 05/03/2017 | 30 | 3 |
,然后让每天的总能给我
|entrydate | sales | purchases |
| -----------| ----- | --------- |
| 05/03/2017 | 100 | 6 |
我试图删除使用
的purchases
重复
df = pandas.read_csv('../my-csv.csv', parse_dates=True, dayfirst=True, usecols=my_columns, dtype=my_dtypes).rename(columns=str.lower).assign(date=lambda x: pd.to_datetime(x['entrydate'], format="%d/%m/%Y")).set_index('date')
df = df.drop_duplicates(['id', 'entrydate', 'purchases'])
df.drop(['id'], axis=1, inplace=True)
df = df.groupby(pd.TimeGrouper(freq='D')).sum()
但同时这将删除重复purchases
它也除去有效sales
图片用于通过A-ZA-z中的溶液
这几乎适用于我,除非在csv中存在另一个日期,所以假设我在'1,06/03/2017,40,1'这样的csv中有一行,它似乎将该id的所有日期的销售额相加,然后使用该日期所有日期的值。请参阅 –
pl的更新屏幕截图,以查看编辑 – Vaishali