python - 将日期时间字符串转换为 pandas 数据框中日、月、年的新列

标签 python datetime pandas dataframe multiple-columns

我有一个包含 3 列的数据框:time(格式为“YYYY-MM-DDTHH:MM:SSZ”)、device_idrain,但是我需要第一列time,变成daymonth三列>year 带有时间戳中的值。

所以原始数据框看起来像这样:

     time                  device_id                              rain
     2016-12-27T00:00:00Z  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN
     2016-12-28T00:00:00Z  9b839362-b06d-4217-96f5-f261c1ada8d6   0.2
     2016-12-29T00:00:00Z  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN
     2016-12-30T00:00:00Z  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN
     2016-12-31T00:00:00Z  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN

但我试图让数据框看起来像这样:

     day  month  year  device_id                              rain
     27   12     2016  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN
     28   12     2016  9b839362-b06d-4217-96f5-f261c1ada8d6   0.2
     29   12     2016  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN
     30   12     2016  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN
     31   12     2016  9b839362-b06d-4217-96f5-f261c1ada8d6   NaN

我不关心小时/秒/分钟,但需要原始时间戳中的这些值,我什至不知道从哪里开始。请帮忙!

下面是一些可重现的代码:

>> import pandas as pd 
>> df = pd.DataFrame([['2016-12-27T00:00:00Z', '9b839362-b06d-4217-96f5-f261c1ada8d6', 'NaN']], columns=['time', 'device_id', 'rain'])
>> print df
2016-12-27T00:00:00Z  9b849362-b06d-4217-96f5-f261c1ada8d6  NaN

最佳答案

最干净的方法是使用内置的 pandas 日期时间函数。

首先,将列转换为日期时间:

df["time"] = pd.to_datetime(df["time"])

然后,提取您的信息:

df["day"] = df['time'].map(lambda x: x.day)
df["month"] = df['time'].map(lambda x: x.month)
df["year"] = df['time'].map(lambda x: x.year)

关于python - 将日期时间字符串转换为 pandas 数据框中日、月、年的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41455967/

相关文章:

c# - 在 DateTime.ParseExact 中将不变区域性与 IFormatProvider 结合使用

python - 为什么我的 python 模拟时钟的指针显示错误的时间?

python - LabelEncoder() 不会存储参数?

python - 将整数解析为字符串的意外行为

python - 如何将 Postgres 日期时间字段设置为 Odoo 日期时间字段

python - pd.concat(array).groupby ('date' .sum() 返回意外行为

python - 如何在Python中复制或删除有条件的行

python - 在 python (Linux) 中触摸一个目录

python - 图像边缘检测 Keras 模型损失没有改善

python - 如何在 Panda 中遍历 groupby 对象