Как выбрать первый ряд в панде dataframe? - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь отсортировать (по возрастанию) по столбцу даты, и хочу проверить, находится ли первая строка в пределах диапазона дат. Итак, я могу убедиться, что определенный файл не подходит для процесса.

eg: file A : contains July+August records

file B : contains September+October records

Я хочу выбрать только file B. Если отсортировано по дате, первой записью fileA будет запись за июль / август.

После сортировки, как выбрать первую запись?

start, end = get_previous_month_start_end()
 df.sort_values('Document Date') <--pick first record from ascending order
            if not  df[df['Document Date'].between(start, end)]

                print ('This is not in the date range')

1 Ответ

3 голосов
/ 11 октября 2019

Используйте Series.sort_values с выбором первого значения с помощью Series.iat или Series.nsmallest - это возвращает один элемент Series, поэтому также необходимо выбрать с помощьюiat:

np.random.seed(2019)

rng = pd.date_range('2017-04-03', periods=10)
df = pd.DataFrame({'Document Date': rng, 'a':np.random.randint(10, size=10)}).sort_values('a')
print (df)
  Document Date  a
6    2017-04-09  0
7    2017-04-10  0
1    2017-04-04  2
2    2017-04-05  5
4    2017-04-07  6
8    2017-04-11  7
0    2017-04-03  8
3    2017-04-06  8
5    2017-04-08  8
9    2017-04-12  8

a = df['Document Date'].sort_values().iat[0]
print(a)
2017-04-03 00:00:00

a = df['Document Date'].nsmallest(1).iat[0]
print (a)
2017-04-03 00:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...