如何在 pandas 中将 dataframe 列转换为日期时间
我们将介绍将将 pandas dataframe 列转换为 python 日期时间的方法。
-
pandas
to_datetime()
函数 -
用 dataframe 的
apply
方法对列中的元素进行操作
我们将在后续介绍中使用相同的 dataframe,如下,
>>> from datetime import datetime, timedelta
>>> from pandas import dataframe
>>> df = dataframe.from_items(
[('alfa', [1, 2, 3]),
('bravo', [4, 5, 6]),
('datetime', [datetime.strftime(datetime.now()-timedelta(days=_), "%m/%d/%y, %h:%m:%s") for _ in range(3)])],
orient='index',
columns=['a', 'b', 'c']).t
>>> df
alfa bravo datetime
a 1 4 12/07/2019, 14:08:55
b 2 5 12/06/2019, 14:08:55
c 3 6 12/05/2019, 14:08:55
pandas to_datetime
函数将 dataframe 列转换为日期时间
pandas to_datetime 函数 将给定参数转换为 datetime
。
pandas.to_datetime(param, format="")
该格式指定日期时间字符串的格式。它与 python datetime
模块中的 stftime
或 strptime
函数中的格式相同。
>>> df
alfa bravo datetime
a 1 4 12/07/2019, 14:08:55
b 2 5 12/06/2019, 14:08:55
c 3 6 12/05/2019, 14:08:55
>>> df['datetime'] = pd.to_datetime(df['datetime'], format="%m/%d/%y, %h:%m:%s")
>>> df
alfa bravo datetime
a 1 4 2019-12-07 14:08:55
b 2 5 2019-12-06 14:08:55
c 3 6 2019-12-05 14:08:55
to_datetime()
函数不会就地修改 dataframe
数据,因此我们需要将返回的 series
分配给特定的 pandas dataframe
列。
to_datetime()
函数可以智能地转换日期时间
to_datetime()
函数无需指定 datetime
格式字符串即可以一种智能的方式转换为 datetime
。它将自动、智能地找到字符串模式。
>>> df['datetime'] = pd.to_datetime(df['datetime'])
>>> df
alfa bravo datetime
a 1 4 2019-12-07 14:08:55
b 2 5 2019-12-06 14:08:55
c 3 6 2019-12-05 14:08:55
dataframe apply
方法将 dataframe 列转换为 datetime
apply(func, *args, **kwds)
dataframe
的 apply
方法对每个列或行应用 func
函数。
为了简单起见,我们可以使用 lambda
函数来代替 func
。
>>> df['datetime'] = df['datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%y, %h:%m:%s"))
>>> df
alfa bravo datetime
a 1 4 2019-12-07 14:44:35
b 2 5 2019-12-06 14:44:35
c 3 6 2019-12-05 14:44:35
将 dataframe 列转换为日期时间方法的性能比较
让我们用 timeit
来比较本文介绍的两种方法的时间性能。
in[1]: % timeit pd.to_datetime(df['datetime'], format="%m/%d/%y, %h:%m:%s")
452 µs ± 85.3 µs per loop(mean ± std. dev. of 7 runs, 1000 loops each)
in[2]: % timeit df['datetime'].apply(lambda _: datetime.strptime(_, "%m/%d/%y, %h:%m:%s"))
377 µs ± 58.5 µs per loop(mean ± std. dev. of 7 runs, 1000 loops each)
apply
方法甚至比 pandas 原生的 to_datetime
方法稍好一点,其执行时间约为 to_datetime
函数的 80%。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 python pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
发布时间:2024/04/20 浏览次数:215 分类:python
-
本文介绍如何删除 pandas 中的 dataframe 列。
pandas series.value_counts() 函数
发布时间:2023/03/21 浏览次数:150 分类:python
-
pandas series.value_counts()方法计算 series 中每个独特元素的出现次数。
pandas series.nunique() 函数
发布时间:2023/03/21 浏览次数:225 分类:python
-
pandas series.nunique 方法统计 python pandas.series 中的唯一值。
pandas series series.unique() 函数
发布时间:2023/03/21 浏览次数:163 分类:python
-
pandas series.unique()方法返回 python pandas series 中的唯一值。这些值是按表象排序的。
发布时间:2022/08/15 浏览次数:657 分类:学无止境
-
让我们了解如何使用 python pandas 更新行和列。 在现实世界中,大多数时候我们没有准备好分析数据集。 可能存在许多不一致、无效值、不正确的标签等等。 话虽如此,更新这些值以实
发布时间:2021/08/21 浏览次数:192 分类: