Получать сгруппированную информацию из массива с помощью Pandas - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть набор данных, структурированный так:

"Date","Time","Open","High","Low","Close","Up","Down","Volume"
01/03/2000,00:05,1481.50,1481.50,1481.00,1481.00,2,0,0.00
01/03/2000,00:10,1480.75,1480.75,1480.75,1480.75,1,0,1.00
01/03/2000,00:20,1480.50,1480.50,1480.50,1480.50,1,0,1.00
[...]
03/01/2018,11:05,2717.25,2718.00,2708.50,2709.25,9935,15371,25306.00
03/01/2018,11:10,2709.25,2711.75,2706.50,2709.50,8388,8234,16622.00
03/01/2018,11:15,2709.25,2711.50,2708.25,2709.50,4738,4703,9441.00
03/01/2018,11:20,2709.25,2709.50,2706.00,2707.25,3609,4685,8294.00

Я читаю этот файл следующим образом:

rows = pd.read_csv("Datasets/myfile.txt")

Я хочу получить эту информацию с помощью панд: для каждого дня (сгруппированного по дням) получите первое значение «Open», последнее значение «Close», максимальное значение «High» и нижнее значение «Low» ", и сумма тома.

Я знаю, как поступить с некоторыми из них, но это очень неэффективный способ. Можно ли сделать несколько строк с пандами?

Спасибо

1 Ответ

0 голосов
/ 05 ноября 2018

Используйте groupby и agg:

df.groupby('Date').agg({
    'Close': 'last',
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Volume': 'sum'
})

Выход:

            Close   Open    High    Low     Volume
Date                    
01/03/2000  1480.50 1481.50 1481.5  1480.5  2.0
03/01/2018  2707.25 2717.25 2718.0  2706.0  59663.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...