1

I want to convert a column into DateTime format and separate the date and time. I have already got the solution for datetime conversion as given from the link below: and code:

df2['date']=pd.to_datetime(df2['date'].astype(str), format='%Y%m%d%H%M',errors='coerce')

But, whenever I try to see the data type of df2['date'], the column is still an object datatype. When I try to separate it using the code:

df2['date'], df2['Time'] = df2['date'].dt.normalize(), df['date'].dt.time

it gives me error :

AttributeError: 'DataFrame' object has no attribute 'dt'

When I print df2.columns the output is

MultiIndex(levels=[[u'ALT', u'AW', u'CLG', u'DEWP', u'DIR', u'GUS', u'H', u'L', u'M', u'MAX', u'MIN', u'MW', u'PCP01', u'PCP06', u'PCP24', u'PCPXX', u'SD', u'SKC', u'SLP', u'SPD', u'STP', u'TEMP', u'VSB', u'W', u'date'], [u'F', u'GMT', u'MPH', u'Mb', u'Miles', u'Unnamed: 10_level_1', u'Unnamed: 12_level_1', u'Unnamed: 13_level_1', u'Unnamed: 14_level_1', u'Unnamed: 15_level_1', u'Unnamed: 16_level_1', u'Unnamed: 17_level_1', u'Unnamed: 18_level_1', u'Unnamed: 19_level_1', u'Unnamed: 20_level_1', u'Unnamed: 3_level_1', u'Unnamed: 6_level_1', u'Unnamed: 7_level_1', u'Unnamed: 8_level_1', u'Unnamed: 9_level_1', u'inches']],
           labels=[[24, 4, 19, 5, 2, 17, 7, 8, 6, 22, 11, 11, 11, 11, 1, 1, 1, 1, 23, 21, 3, 18, 0, 20, 9, 10, 12, 13, 14, 15, 16], [1, 15, 2, 2, 16, 17, 18, 19, 5, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 0, 3, 20, 3, 0, 0, 20, 20, 20, 20, 20]])

and the output of df2.dtypes are:

date   GMT                     object
DIR    Unnamed: 3_level_1      object
SPD    MPH                    float64
GUS    MPH                      int64
CLG    Unnamed: 6_level_1      object
SKC    Unnamed: 7_level_1      object
L      Unnamed: 8_level_1      object
M      Unnamed: 9_level_1      object
H      Unnamed: 10_level_1     object
VSB    Miles                  float64
MW     Unnamed: 12_level_1     object
       Unnamed: 13_level_1     object
       Unnamed: 14_level_1     object
       Unnamed: 15_level_1     object
AW     Unnamed: 16_level_1     object
       Unnamed: 17_level_1     object
       Unnamed: 18_level_1     object
       Unnamed: 19_level_1     object
W      Unnamed: 20_level_1     object
TEMP   F                        int64
DEWP   F                       object
SLP    Mb                      object
ALT    inches                  object
STP    Mb                      object
MAX    F                       object
MIN    F                       object
PCP01  inches                  object
PCP06  inches                  object
PCP24  inches                  object

PCPXX  inches                  object
SD     inches                  object

1 Answer 1

1

There is MultiIndex in columns, so for select columns need tuples:

df2[('date', 'GMT')] = df2[('date', 'GMT')].dt.normalize()
df2[('Time', 'GMT')] = df2[('date', 'GMT')].dt.time
Sign up to request clarification or add additional context in comments.

2 Comments

It still gives me the same error: AttributeError: 'DataFrame' object has no attribute 'dt'
@MalaPokhrel - What is print (df2.columns) ?

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.