Как вставить подстроку в столбце данных панд - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть 2 столбца в пандах данных YYYY и MM.Я хочу объединить как YYYYMM.Но проблема в том, что в марте'2019 станет как 20193, а в октябре-2019 станет как 201910. Я не могу выполнить сортировку на основе такого рода результатов.Я хочу, чтобы весь месяц имел две цифры, например, март месяц должен быть как 03, апрель как 04.

Как правильно их объединить?

df['YYYY']=df['Order_Date'].dt.year.astype(str)
df['MM']=df['Order_Date'].dt.month.astype(str)
df['YM'] = df.YYYY + df.MM #(this does not solve problem)

Ожидается 201903 201904 201910

актуально 20193 20194 201910

1 Ответ

1 голос
/ 07 апреля 2019

Использование Series.dt.strftime:

df = pd.DataFrame({'Order_Date':pd.date_range('2019-01-01', periods=5 ,freq='m')})

df['YM'] = df['Order_Date'].dt.strftime('%Y%m')
print (df)
  Order_Date      YM
0 2019-01-31  201901
1 2019-02-28  201902
2 2019-03-31  201903
3 2019-04-30  201904
4 2019-05-31  201905

Ваше решение должно работать с Series.str.zfill:

df['YM'] = (df['Order_Date'].dt.year.astype(str) + 
            df['Order_Date'].dt.month.astype(str).str.zfill(2))
print (df)
  Order_Date      YM
0 2019-01-31  201901
1 2019-02-28  201902
2 2019-03-31  201903
3 2019-04-30  201904
4 2019-05-31  201905
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...