Группировка значений из csv в Python
Всем привет. Подскажите, пожалуйста, как сгруппировать значения из csv? Привожу пример. В файле csv есть два столбца - в одном дата, в другом число:
01.01.2021, 123
01.01.2021, 456
02.01.2021, 789
02.01.2021, 012
03.01.2021, 345
03.01.2021, 678
03.01.2021, 901
Нужно получить что-то типа этого (в одной дате может быть разное кол-во чисел):
01.01.2021: [123, 456]
02.01.2021: [789, 012]
03.01.2021: [345, 678, 901]
По сути словарь, где ключ имеет несколько значений. Может и другие есть варианты, но со словарем работать проще будет (наверное). На просторах Интернета ничего подходящего не нашел, а сам не смог придумать (опыта и знаний не хватает). Пытался победить эту задачку встроенными функциями Питона и с помощью Pandas, но в Pandas groupby() мне не помог. Там с этими данными производятся всяко разные агрегации (похожее на работу GROUP BY в SQL). В словарях ключи всегда уникальны (как если бы в Pandas я использовал строку с датами как названия столбцов), но я не смог это правильно обыграть. Прошу помощи.
Ответы (1 шт):
Делаете группировку и применяете метод apply:
import pandas as pd
df = pd.read_csv("myfile.csv", header=None, parse_dates=[0], dayfirst=True)
res = df.groupby(0)[1].apply(list)
Теперь в res у вас:
0
2021-01-01 [123, 456]
2021-01-02 [789, 12]
2021-01-03 [345, 678, 901]