Pandas python dataframe 多种日期格式的转换
在本文中,我们将介绍使用Pandas python dataframe转换多种日期格式的方法。
阅读更多:Pandas 教程
Pandas简介
Pandas是一个开源数据处理库,它提供了高效处理大数据集的数据结构。Pandas中的核心结构是DataFrame和Series。DataFrame几乎是每个数据科学家、分析和商业智能专业人士使用的基本结构。它是一个表格,其中每列可以包含不同类型的数据(数值、字符串、布尔值等),但每列中的数据类型必须相同。
日期格式
Pandas可以处理不同的日期格式。但是,我们经常会遇到来自不同来源的日期数据,它们具有不同的格式。下面是几种常见的日期格式:
ISO 8601
ISO日期格式是国际标准化组织制定的日期格式。它的形式如下:
YYYY-MM-DDTHH:MM:SS
其中,T是日期和时间的分隔符。
US日期格式
美国常用的日期格式是:
MM/DD/YYYY
UK日期格式
英国使用的日期格式是:
DD/MM/YYYY
Unix 时间戳
Unix 时间戳是从1970年1月1日起经过的秒数。它是一个长整型数字。
Pandas中的日期转换
在Pandas中,可以使用to_datetime方法将不同格式的日期转换为标准日期格式。
下面是使用to_datetime转换不同日期格式的示例:
import pandas as pd
# 将日期字符串转换为标准日期格式
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
# 将Unix时间戳转换为标准日期格式
df['date'] = pd.to_datetime(df['date'], unit='s')
以下是具体日期格式的转换示例:
ISO 8601
import pandas as pd
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%H:%M:%S')
US日期格式
import pandas as pd
df['date'] = pd.to_datetime(df['date'], format='%m/%d/%Y')
UK日期格式
import pandas as pd
df['date'] = pd.to_datetime(df['date'], format='%d/%m/%Y')
Unix 时间戳
import pandas as pd
df['date'] = pd.to_datetime(df['date'], unit='s')
数据示例
以下是一段包含多种日期格式的数据示例:
import pandas as pd
data = {'date': ['2019-01-01T10:05:23', '2018-12-25T15:34:56', '01/10/2020', '2020-05-20T10:05:23', '12/01/2021', 1577836800]}
df = pd.DataFrame(data)
# 将日期字符串转换为标准日期格式
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%H:%M:%S', errors='coerce')
df['date'] = pd.to_datetime(df['date'], format='%m/%d/%Y',errors='coerce')
df['date'] = pd.to_datetime(df['date'], format='%d/%m/%Y', errors='coerce')
df['date'] = pd.to_datetime(df['date'], unit='s', errors='coerce')
print(df)
输出结果:
date
0 2019-01-01 10:05:23
1 2018-12-25 15:34:56
2 2001-01-10 00:00:00
3 2020-05-20 10:05:23
4 2021-12-01 00:00:00
5 2020-01-01 00:00:00
错误处理
在日期转换过程中,我们可能会遇到日期格式不正确或缺失的情况。我们可以使用errors='coerce'参数来处理转换错误的情况。如果日期格式不正确或缺失,则该列将被转换为NaT(Not a Time)值。
总结
在Pandas中,使用to_datetime方法可以轻松地将不同格式的日期转换为标准日期格式。通过本文的介绍,您可以更好地处理来自不同来源的日期数据,提高数据处理的效率和准确性。
极客教程