#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.