Python 将两个日期时间连接到字符串日期范围中

Python 将两个日期时间连接到字符串日期范围中,python,string,datetime,pandas,concat,Python,String,Datetime,Pandas,Concat,我有一个熊猫数据框 Data = pd.DataFrame([[datetime.datetime(2014,1,1),datetime.datetime(2014,1,3)]],columns=['date1','date2') 该数据帧有两个datetime列date1和date2 我想创建一个包含以下格式字符串的新列: '1/1/2014 - 1/3/2014' 现在我有了创建新列的设置,但它保留了后面的hms: Data['range'] = Data.apply(lambda x:

我有一个熊猫数据框

Data = pd.DataFrame([[datetime.datetime(2014,1,1),datetime.datetime(2014,1,3)]],columns=['date1','date2')
该数据帧有两个datetime列date1和date2

我想创建一个包含以下格式字符串的新列:

'1/1/2014 - 1/3/2014'
现在我有了创建新列的设置,但它保留了后面的hms

Data['range'] = Data.apply(lambda x:'%s - %s' % (x['date1'],x['date2']),axis=1)
因为我使用的是两列而不是两个值,所以很难只去掉日期。有什么建议吗

因为我使用的是两列而不是两个值,所以很难只去掉日期

因为您已经在使用
apply
,所以要处理两个值(不是列),所以可以对每个值调用
date
方法:

Data.apply(
    lambda x: '%s - %s' % ( xdate1.date() , x.date2.date() ),
    axis=1)

传递给lambda函数的
x
是数据帧的一行,因此访问
x.date1
(或
x['date1']
)会给出一个
时间戳类型的值。从中提取日期很容易。

我认为这应该有帮助:

import pandas as pd
from datetime import datetime

Data = pd.DataFrame([[datetime(2014,1,1),
                      datetime(2014,1,3)]],
                      columns=['date1','date2'])

# 
Data['range'] = Data.apply(lambda x:'%s - %s' %
                             (x['date1'].to_pydatetime().strftime("%d/%m/%Y"),
                              x['date2'].to_pydatetime().strftime("%d/%m/%y")),
                             axis=1)       

print(Data)      
结果是:

       date1      date2
0 2014-01-01 2014-01-03
       date1      date2                  range
0 2014-01-01 2014-01-03  01/01/2014 - 03/01/14

您的数据示例将非常有用。你觉得“很难”是什么意思?您得到任何错误或不正确的结果吗?任何示例都会很有用。所谓“发现困难”,我的意思是x['datex']上的strTime不起作用,因为它们是系列而不是值,我无法将其应用于“lambda x”中的x,或者使用%Y%M%d而不是%s。例如date1=datetime.datetime(2014,1,1)和date2=datetime.datetime(2014,1,3)。这很好,但另一个答案更简洁。谢谢你的帮助!滑溜的我还不知道.date()函数,所以这可能会对我今后的工作有很大帮助。非常感谢!