Pandas Dataframe中的列转为日期格式

Pandas Dataframe中的列转为日期格式

在本文中,我们将介绍如何使用Pandas将DataFrame中的列转换为日期格式。日期格式在数据分析和可视化中非常常见,因此了解如何将列转换为日期格式是处理数据的基本技能之一。

阅读更多:Pandas 教程

查看DataFrame的列

首先,让我们看一下一个简单的DataFrame,并查看它的列:

import pandas as pd

data = {'date': ['2019-01-01', '2019-01-02', '2019-01-03'],
        'sales': [100, 200, 150]}
df = pd.DataFrame(data)

print(df)
Python

输出:

         date  sales
0  2019-01-01    100
1  2019-01-02    200
2  2019-01-03    150
Python

DataFrame中的‘date’列包含日期值,但它们是作为字符串来处理的。接下来,我们将演示如何将该列转换为日期格式。

转换为日期格式

使用Pandas的to_datetime()函数,可以将字符串转换为日期格式。以下是将DataFrame中的‘date’列转为日期格式的示例代码:

df['date'] = pd.to_datetime(df['date'])
Python

通过上面的代码,我们不仅将‘date’列转换为日期格式,还将新的日期列重新赋给了‘date’列。如果你想用不同的列名储存新的日期列,可以这样写:

df['new_date_column'] = pd.to_datetime(df['date'])
Python

现在我们再次查看DataFrame:

print(df)
Python

输出:

        date  sales
0 2019-01-01    100
1 2019-01-02    200
2 2019-01-03    150
Python

‘date’列现在是日期格式,而不是字符串格式了。

从不同列创建日期

有时,日期信息可能分布在DataFrame中的不同列中。在Pandas中,可以使用to_datetime()函数和DatetimeIndex()函数从多个列中创建日期。

以下是将DataFrame中的‘year’列和‘month’列创建日期列的示例代码:

data = {'year': [2019, 2019, 2019], 
        'month': [1, 2, 3], 
        'sales': [100, 200, 150]}
df = pd.DataFrame(data)

df['date'] = pd.to_datetime(dict(year=df['year'], month=df['month']))
df = df.drop(['year', 'month'], axis=1)
Python

通过将to_datetime()函数与一个字典作为参数,该函数会创建一个包含年份和月份的新列,并使用DatetimeIndex()函数将这些值转换为日期格式。最后,我们删除原始的‘year’和‘month’列,只留下新的日期列。

print(df)
Python

输出:

        sales       date
0     100  2019-01-01
1     200  2019-02-01
2     150  2019-03-01
Python

将日期拆分为年份、月份和日期

在某些情况下,在DataFrame中将日期单独分析可能非常有用。例如,你想在某个时间范围内对其进行聚合。在Pandas中,可以使用dt属性和相关的方法拆分日期。

以下是如何将’date’列拆分为年份、月份和日期的示例代码:

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day

df = df.drop('date', axis=1)
Python

通过使用dt属性和相关方法,我们可以将‘date’列拆分为年份、月份和日期,并将其分别存储在‘year’、‘month’和‘day’列中。由于我们现在已经将日期信息拆分了,我们可以在最后删除原始的‘date’列。

print(df)
Python

输出:

   sales  year  month  day
0    100  2019      1    1
1    200  2019      2    1
2    150  2019      3    1
Python

这里,我们成功地将‘date’列拆分成了‘year’、‘month’和‘day’三列。

将时间索引设置为日期

当我们需要进行时间序列分析时,使用日期作为时间索引比使用数字或字符串索引更方便。在Pandas中,可以使用set_index()函数将日期列设置为时间索引。

以下是如何将DataFrame中的‘date’列设置为时间索引的示例代码:

df = df.set_index('date')
Python

这样,我们可以使用loc[]函数根据日期选择行:

print(df.loc['2019-01-01'])
Python

输出:

sales    100
year    2019
month      1
day        1
Name: 2019-01-01 00:00:00, dtype: int64
Python

总结

在本文中,我们介绍了如何使用Pandas将DataFrame中的列转换为日期格式。我们展示了将单独的列转换为日期格式、从不同的列创建日期列、将日期拆分为年、月、日以及将日期列设置为时间索引。这些技巧可以帮助数据分析师更好地处理数据,进行更加准确的分析和预测。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册