Это ордера на покупку и продажу, все в размере 0,02.Но они были разбиты на меньшее количество частей, и поэтому каждый заказ теперь занимает более одного ряда.Я хочу объединить строки, принадлежащие к одному и тому же порядку.
Столбец «Время» имеет уникальную метку времени для каждого заказа.Итак, глядя на это, мы можем видеть 4 порядка
Порядок 1 - это строки 3, 4
Порядок 2 - это строки 5, 6, 7
Порядок 3 - это строки 8, 9
Порядок 4 - это строки 10, 11, 12
Исходный фрейм данных:
| 1| Time | Market | Type | Price | Amount | Total | Fee | Acc |
| 2|-----------|-----------|-------|----------|---------|-----------|----------|---------|
| 3| 17:59:31 | Market 1 | Buy | 1207.55 | 0.0198 | 13.07451 | 0.00989 | MXG 36 |
| 4| 17:59:31 | Market 1 | Buy | 1207.20 | 0.0002 | 0.013086 | 0.00005 | MXG 36 |
| 5| 15:42:12 | Market 1 | Sell | 1146.78 | 0.0100 | 3.073645 | 0.00232 | MXG 36 |
| 6| 15:42:12 | Market 1 | Sell | 1147.44 | 0.0058 | 8.005802 | 0.00746 | MXG 36 |
| 7| 15:42:12 | Market 1 | Sell | 1147.91 | 0.0042 | 2.000000 | 0.00993 | MXG 36 |
| 8| 12:05:45 | Market 1 | Buy | 1355.20 | 0.0077 | 7.433008 | 0.00050 | MXG 36 |
| 9| 12:05:45 | Market 1 | Buy | 1355.00 | 0.0123 | 5.833023 | 0.00755 | MXG 36 |
|10| 10:22:17 | Market 1 | Sell | 1002.07 | 0.0010 | 0.373225 | 0.00238 | MXG 36 |
|11| 10:22:17 | Market 1 | Sell | 1001.35 | 0.0055 | 10.00000 | 0.00003 | MXG 36 |
|12| 10:22:17 | Market 1 | Sell | 1001.20 | 0.0135 | 3.001038 | 0.00330 | MXG 36 |
Желаемый конечный результат:
| 1| Time | Market | Type | Price | Amount | Total | Fee | Acc |
| 2|-----------|-----------|-------|-----------|---------|-----------|----------|---------|
| 3| 17:59:31 | Market 1 | Buy | avg price | 0.0200 | 13.087596 | 0.01039 | MXG 36 |
| 4| 15:42:12 | Market 1 | Sell | avg price | 0.0200 | 13.079447 | 0.01971 | MXG 36 |
| 5| 12:05:45 | Market 1 | Buy | avg price | 0.0200 | 13.266031 | 0.00805 | MXG 36 |
| 6| 10:22:17 | Market 1 | Sell | avg price | 0.0200 | 13.374263 | 0.00598 | MXG 36 |
Итак, что было сделано здесь, примерноследующее:
- Столбец «Цена»: Мы можем просто игнорировать.В идеале я хочу найти средневзвешенную цену на основе столбца «Сумма», но для простоты давайте пока проигнорируем это.
- Столбец «Тип»: необходимо, чтобы правильное значение придерживалось правильного значенияorder.
- Столбцы 'Market' и 'Acc': имеют одинаковое значение в каждой строке, поэтому просто нужно стать 1 строкой вместо 2-3 строк.
- The Amount,Столбцы 'Total' и 'Fee': должны быть суммой, сложив их вместе
Самое близкое, что я получил, это:
df.pivot_table(index= 'Time', values = ['Amount', 'Total', 'Fee'], aggfunc = 'sum')
| 1| | Amount | Total | Fee |
| 2| Time | | | |
| 3|-----------|---------|-----------|-----------|
| 4| 17:59:31 | 0.0200 | 'correct' | 'correct' |
| 5| 15:42:12 | 0.0200 | 'correct' | 'correct' |
| 6| 12:05:45 | 0.0200 | 'correct' | 'correct' |
| 7| 10:22:17 | 0.0200 | 'correct' | 'correct' |
"Правильные" ячейки просточтобы сэкономить немного времени (создание таблиц было достаточно трудоемким: P).Но они показывают желаемые результаты.Но все остальные столбцы отсутствуют, в том числе столбец «Тип», в котором были данные «купить» или «продать», которые необходимо было привязать к каждому заказу.