Перевести str в int в пандах - PullRequest
0 голосов
/ 30 октября 2018

У меня есть один столбец, подобный этому:

day
2018-10-30
2018-9-25
2018-9-30

Я хочу перевести день в день как это:

intday
20181030
2018925
2018930

Вот мой код:

f = lambda x : int(x[0]) * 10000 + int(x[1]) * 100 + int(x[2])
train_df['intday'] = train_df['day'].apply([f(x) for x in train_df['day'].str.split('-')])

а это не работает, как это исправить?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Что я рекомендую

pd.to_datetime(df.day).dt.strftime('%Y%m%d').astype(int)
Out[56]: 
0    20181030
1    20180925
2    20180930
Name: day, dtype: int32
0 голосов
/ 30 октября 2018

Вы можете просто удалить -, используя str.replace, а затем привести к int:

train_df['intday'] = train_df['day'].str.replace('-','').astype(int)

>>> train_df
          day    intday
0  2018-10-30  20181030
1   2018-9-25   2018925
2   2018-9-30   2018930
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...