найти даты в датафрейме и получить индекс этих дат - PullRequest
0 голосов
/ 09 марта 2019

У меня есть два кадра данных: dfOne и dfTwo.

У dfOne есть столбец с именем Dates. Ежедневно с 1 января 2016 года по 1 января 2018 года.

У dfTwo также есть столбец с названием Даты, но, скажем, только 5 дат,

  4th Feb 2016
  23rd March 2016
  3rd May 2016
  22nd November 2016
  18th July 2017

Каков наилучший способ найти индекс каждой из указанных выше дат в кадре данных dfOne?

Ответы [ 2 ]

2 голосов
/ 09 марта 2019

Вам может понадобиться преобразовать их в формат даты и времени

df2.Date=pd.to_datetime(df2.Date)
df1.Date=pd.to_datetime(df1.Date)

Тогда мы используем isin

df1.index[df1.Date.isin(df2.Date)]
1 голос
/ 09 марта 2019

pd.isin - это путь, если вам просто нужно знать индексы пересекающихся значений. Если вам нужны фактические значения index для каждой записи в вашем df2, вы можете использовать индекс соответствия

df2.set_index('dates').assign(index=df.set_index('dates')['index']).reset_index()

Например, MCVE:

df          = pd.DataFrame({'dates': ['10/10/2010', '10/11/2010', '10/12/2010', '10/13/2010']}) 
df['index'] = df.index
df2         = pd.DataFrame({'dates': ['10/10/2010', '10/13/2010']})

Тогда df2 идет от

    dates
0   2010-10-10
1   2010-10-13

до

    dates       index
0   2010-10-10  0
1   2010-10-13  3

, где 0 и 3 - соответствующие индексы в df.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...