【问题标题】:Python: how to separate time records(e.g. 2015-02-01 12:34:22) in to two different arraysPython:如何将时间记录(例如 2015-02-01 12:34:22)分成两个不同的数组
【发布时间】:2025-12-25 23:30:16
【问题描述】:

dataframe如下:

1       2015-02-01 18:04:33
2       2015-02-01 12:28:15
3       2015-02-01 12:28:56
4       2015-02-01 00:45:08
5       2015-02-01 00:46:28
6       2015-02-01 00:59:56
7       2015-02-01 01:00:21
8       2015-02-01 01:00:21
9       2015-02-01 01:02:51
10      2015-02-01 01:02:51
11      2015-02-01 01:14:14      

这些时间记录(例如 2015-02-01 01:02:51)在此数据框中被视为单个数组,我想将其分为数据和小时,例如2015-02-01 在一个数组中,01:00:21 在另一个数组中。

df.info() 显示 Int64Index:695366 个条目,0 到 695365 数据列(共 13 列):URID 695366 非空对象 GPRS 632202 非空对象日期时间 695362 非空对象

我尝试使用splitnumpy,但它不起作用。所以我想知道是否有其他方法可以解决它?

【问题讨论】:

  • 您在使用split 时遇到什么错误?你可以发布代码sn-p吗?是Panda Dataframe 还是file input 还是只是list

标签: python pandas


【解决方案1】:

如果您的dtypedatetime,那么您可以使用.dt 访问器来分隔列:

In [32]:
df['date'], df['time'] = df['datetime'].dt.date, df['datetime'].dt.time
df

Out[32]:
                 datetime        date      time
index                                          
1     2015-02-01 18:04:33  2015-02-01  18:04:33
2     2015-02-01 12:28:15  2015-02-01  12:28:15
3     2015-02-01 12:28:56  2015-02-01  12:28:56
4     2015-02-01 00:45:08  2015-02-01  00:45:08
5     2015-02-01 00:46:28  2015-02-01  00:46:28
6     2015-02-01 00:59:56  2015-02-01  00:59:56
7     2015-02-01 01:00:21  2015-02-01  01:00:21
8     2015-02-01 01:00:21  2015-02-01  01:00:21
9     2015-02-01 01:02:51  2015-02-01  01:02:51
10    2015-02-01 01:02:51  2015-02-01  01:02:51
11    2015-02-01 01:14:14  2015-02-01  01:14:14

【讨论】:

  • 不,不是datetime,是dataframe,如何转成datetime类型?
  • 你在用pandas吗?
  • 不是,是文件输入数据。但我也在上面使用了 pd.DataFrame。
  • 所以你没有使用pandas 库?您可以使用read_csv 加载它并传递parse_dates=True,它会将数据转换为日期时间
  • 哦,你的意思是pandas库,是的,我使用read_csv来读取数据。