python pandas convert index to datetime

后端 未结 3 1590
感动是毒
感动是毒 2020-11-28 23:55

How do i convert a pandas index of strings to datetime format

my dataframe \'df\' is like this

                     value          
2015-09-25 00:46          


        
相关标签:
3条回答
  • 2020-11-29 00:37

    You could explicitly create a DatetimeIndex when initializing the dataframe. Assuming your data is in string format

    data = [
        ('2015-09-25 00:46', '71.925000'),
        ('2015-09-25 00:47', '71.625000'),
        ('2015-09-25 00:48', '71.333333'),
        ('2015-09-25 00:49', '64.571429'),
        ('2015-09-25 00:50', '72.285714'),
    ]
    
    index, values = zip(*data)
    
    frame = pd.DataFrame({
        'values': values
    }, index=pd.DatetimeIndex(index))
    
    print(frame.index.minute)
    
    0 讨论(0)
  • 2020-11-29 00:39

    It should work as expected. Try to run the following example.

    import pandas as pd
    import io
    
    data = """value          
    "2015-09-25 00:46"    71.925000
    "2015-09-25 00:47"    71.625000
    "2015-09-25 00:48"    71.333333
    "2015-09-25 00:49"    64.571429
    "2015-09-25 00:50"    72.285714"""
    
    df = pd.read_table(io.StringIO(data), delim_whitespace=True)
    
    # Converting the index as date
    df.index = pd.to_datetime(df.index)
    
    # Extracting hour & minute
    df['A'] = df.index.hour
    df['B'] = df.index.minute
    df
    
    #                          value  A   B
    # 2015-09-25 00:46:00  71.925000  0  46
    # 2015-09-25 00:47:00  71.625000  0  47
    # 2015-09-25 00:48:00  71.333333  0  48
    # 2015-09-25 00:49:00  64.571429  0  49
    # 2015-09-25 00:50:00  72.285714  0  50
    
    0 讨论(0)
  • 2020-11-29 00:43

    I just give other option for this question - you need to use '.dt' in your code:

    import pandas as pd
    
    df.index = pd.to_datetime(df.index)
    
    #for get year
    df.index.dt.year
    
    #for get month
    df.index.dt.month
    
    #for get day
    df.index.dt.day
    
    #for get hour
    df.index.dt.hour
    
    #for get minute
    df.index.dt.minute

    0 讨论(0)
提交回复
热议问题