2

i want to convert a column with string date '19 Desember 2022' for example (the month name is in Indonesian), to supported datetime format without translating it, how do i do that?

already tried this one df_train['date'] = pd.to_datetime(df_train['date'], format='%d %B %Y') but got error time data '19 Desember 2022' does not match format '%d %B %Y' (match)

incase if anyone want to see the row image

3
  • 1
    it should be December instead of Desember in your data Commented Jan 5, 2023 at 18:42
  • no in bahasa(indonesian language) Desember is December, thats what am asking for, how to make it datetime format without have to translate it to english Commented Jan 5, 2023 at 18:44
  • then replace in your data replace Desember to December then apply time formate Commented Jan 5, 2023 at 18:48

2 Answers 2

1

Try using dateparser

import dateparser
df_train = pd.DataFrame(['19 Desember 2022', '20 Desember 2022', '21 Desember 2022', '22 Desember 2022'], columns = ['date'])
df_train['date'] = [dateparser.parse(x) for x in df_train['date']]
df_train

Output:

    date
0   2022-12-19
1   2022-12-20
2   2022-12-21
3   2022-12-22
Sign up to request clarification or add additional context in comments.

Comments

0

Pandas doesn't recognize bahasa(indonesian language) Try replacing the spelling of December (as pointed out you can use a one liner and create a new column):

df_train["formatted_date"] = pd.to_datetime(df_train["date"].str.replace("Desember", "December"), format="%d %B %Y")
print(df_train)

Output:

  user_type              date formatted_date
0   Anggota  19 Desember 2022     2022-12-19
1   Anggota  19 Desember 2022     2022-12-19
2   Anggota  19 Desember 2022     2022-12-19
3   Anggota  19 Desember 2022     2022-12-19
4   Anggota  19 Desember 2022     2022-12-19

4 Comments

Or just as a one-liner: df_train['date'] = pd.to_datetime(df_train['date'].str.replace('Desember', 'December'), format='%d %B %Y')
is there anyway to keep the month "Desember" ? id like to keep it in Indonesian without have to translate the month format
no I don't think you can
Add a new column with the replace

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.