私の質問はthis oneと幾分似ていますが、それほどよくありません。私は、データフレームにこれを読んでいる、と私は売買の毎日集計(個人IDは関係ありません、ただ毎日集計)を取得したい構造の以下のようなものパンダは重複を削除しようとしたときに特定の列の値のみを削除します
| 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 1の場合、同じ日に2つのエントリがありますが、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
を削除する一方、それはまた、-ZA-Zによって溶液のために有効なsales
画像を削除し
これはほとんど私のために働きます。を除いて、別の日付がcsvに存在する場合を除いて、 '1,06/03/2017,40,1'のようなcsvの行があるとすれば、それはそのIDのために一日中売り上げを合計し、すべての日付の値。質問のアップデートスクリーンショットを参照してください –
pl編集を参照してください – Vaishali