split int values in column pandas

Question:

I currently have a dataset

date_checkout_y col
18000809 5
18001017 6
18001226 8
18001229 8
18010216 10

I want to split date_checkout_y to create a datetime

tried

df['date_checkout_y'] = df.date_checkout_y.str.split(n=1,expand=True)

but getting an error

Asked By: Teejay Akalonu

||

Answers:

Would the following code snippet provide you with the results you desire?

import pandas as pd

df = pd.DataFrame([['18000809     5'], ['18001017     6'], ['18001226     8'], ['18001229     8'], ['18001229     8']], columns=['date_checkout_y'])

print(df)

df2 = df.date_checkout_y.str.split(n=1,expand=True)

df2.columns = ['Date', 'Value']

print(df2)

When I ran this "proof of principle" program with data that mimicked yours, this was the result I got on my terminal.

  date_checkout_y
0  18000809     5
1  18001017     6
2  18001226     8
3  18001229     8
4  18001229     8
       Date Value
0  18000809     5
1  18001017     6
2  18001226     8
3  18001229     8
4  18001229     8

Hope that helps.

Regards.

Answered By: NoDakker

use from apply method (if your col is string else convert it to string)

from datetime import datetime
def f(x):
    return datetime(year=x[:4], month=x[4:6], day=x[6:8]

df['new'] = df['date_checkout_y'].apply(f)

Answered By: Alireza
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.