我有以下数据框df
:
id lat lon year month day
0 381 53.30660 -0.54649 2004 1 2
1 381 53.30660 -0.54649 2004 1 3
2 381 53.30660 -0.54649 2004 1 4
我想创建一个新列df['Date']
,其中year
,month
和day
列按照格式结合yyyy-m-d
。
我做了:
`df['Date']=pd.to_datetime(df['year']*10000000000
+df['month']*100000000
+df['day']*1000000,
format='%Y-%m-%d%')`
结果不是我所期望的,因为它从1970年而不是2004年开始,并且还包含小时戳,我没有指定:
id lat lon year month day Date
0 381 53.30660 -0.54649 2004 1 2 1970-01-01 05:34:00.102
1 381 53.30660 -0.54649 2004 1 3 1970-01-01 05:34:00.103
2 381 53.30660 -0.54649 2004 1 4 1970-01-01 05:34:00.104
由于日期应采用2004-1-2
格式,我在做什么错?
有一个更简单的方法:
In [250]: df['Date']=pd.to_datetime(df[['year','month','day']])
In [251]: df
Out[251]:
id lat lon year month day Date
0 381 53.3066 -0.54649 2004 1 2 2004-01-02
1 381 53.3066 -0.54649 2004 1 3 2004-01-03
2 381 53.3066 -0.54649 2004 1 4 2004-01-04
来自docs:
从DataFrame的多个列中组合一个日期时间。这些密钥可以像常见缩写[
year
,month
,day
,minute
,
second
,ms
,us
,ns
])或相同的复数
问题内容: 我有 我想要 问题答案:
我有一个日值(1-31)、一个月值(1-12)和一个年值,我需要将它们保存为我的MySQL数据库日期格式。 如何将这些值(对应于日、月和年的3个整数)转换为日期格式以将其保存到数据库中?
问题内容: 我在sql server中有一个datetime列及其可选字段,如果用户决定不输入,那么我想在表中插入NULL值,并定义如下内容: 当我插入sql server时,我在asp.net中有此代码 但问题是:其插入 在SQL表而不是 我在这里做错了什么? 更新: 问题答案: 假设您有: 如果您想插入SQL NULL,那么您应该下一步: 意思是: 如果要在函数中注意可空的datetime,则
问题:我如何将年和月数据合并为一个MM/DD/YYYY日期,而不将数字类型转换为字符类型? 我有需要读入SAS的日期数据。它分为两栏:年和月。数据看起来如下所示: 我通过以下方式实现了这一点: 但是,日志给出了以下说明: 注意:数值已在:(行):(列)给出的位置转换为字符值。 虽然上面的代码充分解决了我的问题,但注释暗示不应该以这种方式(通过类型转换)处理日期格式。
我有像“2020年4月20日”这样的字符串。我想将字符串转换为DateTime()。 我面临的问题是DateTime.parse()不接受月份名称。
ECMA-262 语言规范第 21.4.1.15.1 段详细介绍了扩展年份日期格式 引述: 21.4.1.15.1 扩展年份 涵盖1970年1月1日(21.4.1.1)前后约273,790年的全时值范围需要表示0之前或9999之后的年份。ISO 8601允许扩展年份表示。 在简化的ECMAScript格式中,这种扩展的年份表示应具有6位数字,并且始终以或符号作为前缀。0年被视为正,因此以符号作为前