从数据框值创建日期/时间戳

时间:2017-11-29 20:00:35

标签: python python-3.x pandas

我有一个包含以下值的数据框:

 Date   07/12/17
 Start Time   05:00 PM

其中每一项目前都存储为字符串。

我需要格式化/连接此信息,格式如下:

'2017-07-12 17:00'

我是python的新手,我发现的大多数解决方案都不适用于pandas数据框。

示例代码:

#import pandas
import pandas as pd


#import file
df = pd.read_csv('Registrant List.csv', 
                 index_col='Conf Number', names = ['Conf Number','Email Address',
                 'Customer ID', 'First Name',   'Last Name', 'Sessions Date', 
                 'Session Time'])

#parse session time
df['Session Start Time'] = df['Session Time'].str.rpartition('-')[0]
print(df.to_string())

示例输出:

Conf Number Email Address  Customer ID  First Name  Last Name  Sessions Date             Session Time Session Start Time                  
25502163     abc@123.com          NaN      Justin   Anderson      7/11/2017  10:30 AM - 11:00 AM EST          10:30 AM 

1 个答案:

答案 0 :(得分:0)

试试这个。首先,您需要将Start Time 05:00 PM转换为适当的24小时时间格式,然后按以下方式连接DateStart Time列:

df_test = pd.DataFrame({'Date': ['07/12/17','08/12/17','08/12/17','09/12/17'],
                        'Start Time':['05:00 PM','01:30 PM','03:00 AM','04:50 PM']})

df_test

        Date  Start Time
0   07/12/17    05:00 PM
1   08/12/17    01:30 PM
2   08/12/17    03:00 AM
3   09/12/17    04:50 PM


df_test['Date_Start_Time'] =  pd.to_datetime(df_test.Date+' '+pd.to_datetime(df_test['Start Time']).dt.strftime('%H:%M'))

df_test
        Date  Start Time        Date_Start_Time
0   07/12/17    05:00 PM    2017-07-12 17:00:00
1   08/12/17    01:30 PM    2017-08-12 13:30:00
2   08/12/17    03:00 AM    2017-08-12 03:00:00
3   09/12/17    04:50 PM    2017-09-12 16:50:00

我认为这是您想要的输出。检查一下。