【发布时间】:2023-04-04 04:35:02
【问题描述】:
所以我使用 pandas 打开了 .csv 格式的数据。我现在想将日期从当前的 dd/mm/YYYY hh:mm:ss 格式重新格式化为纯 YYYY-mm-dd 格式,例如,从 19/11/2014 15:26:13 到 2014-11- 19.我将如何在 pandas 数据数组中执行此操作?即,从此转换:
Id User Id Start Time End Time Climb Time
0 74618 27366 19/11/2014 15:26:13 19/11/2014 15:26:18 5
1 74632 27366 19/11/2014 15:26:18 19/11/2014 15:42:26 968
2 74633 27366 19/11/2014 15:42:26 19/11/2014 15:42:48 22
到这里:
Id User Id Start Time End Time Climb Time
0 74618 27366 2014-11-19 2014-11-19 5
1 74632 27366 2014-11-19 2014-11-19 968
2 74633 27366 2014-11-19 2014-11-19 22
我尝试了另一种 pandas 就绪方法,但似乎都没有工作或识别初始数据。我想知道是否有人知道可以实现此目的的任何方法...
【问题讨论】:
-
对不起,您是在问如何正确解析日期字符串,还是在此处询问重新格式化,因为前者
df['Start Time'] = pd.to_datetime(df['Start Time'])将适用于后者,转换后您可以执行df['Start Time'].dt.strftime('%Y-%m-%d')但是,这将给你字符串而不是日期或日期时间对象,它不如正确的日期时间 IMO 有用 -
@reticentroot 该示例适用于
to.csv而不是from.csv。 @EdChum 我会采用任何可行的方法——df是什么?我希望对此进行更明确的解释,而不仅仅是“这样做——它有效”——我想知道发生了什么。 -
@EdChum 这也给了我:
TypeError: 'type' object has no attribute '__getitem__' -
这里
df指的是一个数据框,我假设您使用read_csv创建了一个df,如下所示:df = pd.read_csv(your_file_path),您实际上可以告诉pandas 解析这些列:df = pd.read_csv(your_file, parse_dates=['Start Time', 'End Time'])您也没有说明您当前的游戏状态是什么,您的问题是如何在熊猫数据数组中执行此操作,这意味着它已经被加载到数据框中,如果没有,那么您应该发布原始数据,您的代码并试图消除任何歧义 -
@EdChum 好的,这开始有意义了。
dt是什么?
标签: python arrays datetime pandas format