【问题标题】:Make separate columns for Date, Month, year, hour , minute , second from a single column从单个列中为日期、月份、年份、小时、分钟、秒创建单独的列
【发布时间】:2018-01-26 17:02:12
【问题描述】:

在我的 pandas 数据框中,我的数据时间列具有以下形状,我如何从列中提取 Y、M、D、H、M、秒。 我正在使用它首先将其转换为日期时间格式。

import datetime as dt
df['TIMESTAMP'] = df['YMD-Time'].apply(lambda x: dt.datetime.strptime(x,'%Y%-m%-d%-H%-M%-S'))

它们似乎是用制表符分隔的。为日期、月份、年份、小时、分钟、秒创建单独的列

【问题讨论】:

  • 你想要df = df.join(df['YMD-Time'].str.split()) 吗?
  • 附注。为什么要将年份等放在不同的列中,而不是 datetime 对象?
  • 不,我将在最后删除 YDM-Time 列,只保留 Y、M、D、H、MS 的单独列。
  • @MaartenFabré 我将使用这些作为功能并根据这些特定列进行 EDA
  • 您的strptime 格式错误。我也会使用 (pandas.to_datetime)[pandas.pydata.org/pandas-docs/stable/generated/… 而不是 datetime.strptime: pd.to_datetime(df['YMD-Time'], format=format='%Y\t%m\t%d\t%H\t%M\t%S')

标签: python python-3.x pandas


【解决方案1】:

我认为您需要 str.split 用于 DataFrame,获取列和 join 到原始:

df1 = df['YMD-Time'].str.split(expand=True)
df1.columns = ['Y', 'M', 'D', 'H', 'M', 'Secs']
df = df.join(df1)

【讨论】:

  • 我需要另一个帮助来读取数据文件,它是关于 Apriori 算法的实现,我不确定,我应该如何加载相同的数据,它由---->(这个符号)之间的产品关联,我会在编辑中进行更改,请问?
  • @Shivam - 似乎这是另一个问题,与此解决方案无关。所以更好的是创建新问题。
  • 我无法创建,所以编辑了一个问题,你能看一下吗?
  • @Shivam - 是的,当然。每行中有相同数量的---> 符号吗?
猜你喜欢
  • 2012-11-06
  • 2018-10-15
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
相关资源
最近更新 更多