我的問題有點類似於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