Pandas Dataframe получает лучшие результаты 1

#pandas

#pandas

Вопрос:

Как я могу получить первую строку результата 1 из pandas df?

вот код на данный момент:

 string3 = df[(df['ruleid'] == '5700') amp; (df['timestamp'] > emp_1.timestamp) amp; (df['srcip'] == emp_1.srcip)].groupby('timestamp').head(1).values.flatten().tolist()


['1597829264', '11595380253', '51.26.761.11', '5700', '1595380199.679119', 'na', '1597829264', '11595380256', '51.26.761.11', '5700', '1595380199.679119', 'na', '1597829264', '11595380257', '51.26.761.11', '5700', '1595380199.679119', 'na', '1597829264', '11595380258', '51.26.761.11', '5700', '1595380199.679119', 'na']
  

Комментарии:

1. Не уверен, правильно ли я интерпретирую ваш вопрос. У вас есть head(1) который захватил бы первую строку объекта groupby. Затем вы преобразуете его в список. Вам нужен первый элемент в этом списке? Если да strings3[0] . Воспроизводимый пример, показывающий ожидаемые результаты, был бы полезен.

2. df создается из csv-файла, если я использую string [0], то я получаю заголовок csv

3. без просмотра вашего csv-файла или наличия воспроизводимого кода это сложно. Похоже, что вы прочитали файл в, затем подмножество на основе значений в ruleid , timestamp и srcip . Затем вы группируете это и преобразуете в список. Зачем преобразовывать его в список, если вы хотите вызвать всю первую строку группы? Вместо этого преобразуйте его в dataframe. string3 = pandas.DataFrame(df[(df['ruleid'] == '5700') amp; (df['timestamp'] > emp_1.timestamp) amp; (df['srcip'] == emp_1.srcip)].groupby('timestamp')) Затем вы можете вызвать string3[0], чтобы получить первую строку сгруппированного df.