Pandas 使用pandas组合日期和时间列
在本文中,我们将介绍如何使用Pandas在数据集中组合日期和时间列。Pandas是一个图表库,用于处理和分析大型数据集。Pandas能够操纵和组合日期和时间列,以便更有效地处理数据。
阅读更多:Pandas 教程
创建DataFrame
我们将首先创建一个包含日期和时间列的Dataframe,用于演示如何组合这两个列。在这个例子中,我们将使用两个DataFrame“year”和“day”,每个DataFrame将有5个条目。
import pandas as pd
year = pd.DataFrame({'year': [2021, 2021, 2021, 2021, 2021]})
day = pd.DataFrame({'day': [1, 2, 3, 4, 5]})
print(year)
print(day)
结果:
year
0 2021
1 2021
2 2021
3 2021
4 2021
day
0 1
1 2
2 3
3 4
4 5
用Pandas通过组合列来创建日期时间
接下来,我们将使用Pandas Dataframe中的“to_datetime”函数来将两个数据帧的“day”和“year”列组合成日期时间列。
datetime = pd.to_datetime(year.assign(day=day['day']))
print(datetime)
结果:
0 2021-01-01
1 2021-01-02
2 2021-01-03
3 2021-01-04
4 2021-01-05
dtype: datetime64[ns]
我们可以看到,通过在“year”和“day”列中组合日期和时间,我们得到了一个新的日期时间列。这种方法非常方便,因为它只需要一行代码,即使用“to_datetime”函数,就可以完成。更重要的是,我们可以在任何时候组合列,从而执行各种操作和分析。
如何在Pandas中使用datetime64进行操作
我们已经知道了如何在Pandas中创建一个日期时间列,但有时我们需要对这个列进行操作。Pandas提供了多种方法来操作datetime64列。例如,我们可以使用“dt.day”、“dt.month”、“dt.year”、“dt.hour”、“dt.minute”和“dt.second”等函数,从日期时间列中提取特定时间和日期部分。
import pandas as pd
year = pd.DataFrame({'year': [2021, 2021, 2021, 2021,2021]})
day = pd.DataFrame({'day': [3,17,28,14,22]})
datetime = pd.to_datetime(year.assign(day=day['day']))
print(datetime.dt.day)
print()
print(datetime.dt.month)
结果:
0 3
1 17
2 28
3 14
4 22
dtype: int64
0 1
1 1
2 1
3 1
4 1
dtype: int64
在这个例子中,我们使用“dt.day”和“dt.month”函数来提取日期时间列的日期和月份部分。
在Pandas中使用datetime64进行过滤和排序
我们可以在Pandas中使用datetime64进行数据集中的过滤和排序。在下面的例子中,我们将创建一个Dataframe,其中包含日期时间列和列“value”,然后使用日期时间进行排序。
import pandas as pd
dates = pd.date_range('20210101', periods=5)
df = pd.DataFrame({'date': dates,
'value': [4, 1, 3, 2, 1]})
print(df)
df = df.set_index('date').sort_index()
print(df)
结果:
date value
0 2021-01-01 4
1 2021-01-02 1
2 2021-01-03 3
3 2021-01-04 24 2021-01-05 1
value
date
2021-01-01 4
2021-01-02 1
2021-01-03 3
2021-01-04 2
2021-01-05 1
可以看到,我们使用了“set_index”函数设置了日期时间列为索引,并使用“sort_index”函数对Dataframe进行排序。我们可以按升序或降序对列进行排序,以便更好地理解数据集。
在Pandas中进行日期和时间的算术运算
通过将日期时间列转换为pandas中的日期时间对象,我们可以在Pandas中轻松执行日期和时间的算术运算。在下面的例子中,我们将使用数据帧“df1”和“df2”,并通过将它们的日期时间列相加来创建一个新的数据帧。
import pandas as pd
df1 = pd.DataFrame({'date': ['2021-01-01', '2021-01-02', '2021-01-03'],
'value': [4, 1, 3]})
df2 = pd.DataFrame({'date': ['2021-01-01', '2021-01-02', '2021-01-03'],
'value': [2, 5, 1]})
df1['date'] = pd.to_datetime(df1['date'])
df2['date'] = pd.to_datetime(df2['date'])
df = pd.DataFrame({'date': df1['date'] + df2['date'],
'value': df1['value'] + df2['value']})
print(df)
结果:
date value
0 2022-01-02 6
1 2022-01-04 6
2 2022-01-06 4
在这个例子中,我们使用“to_datetime”函数将日期字符串转换为日期时间,并使用Dataframe的算术运算符进行日期和时间列的相加操作,从而创建新的日期时间列。
总结
在本文中,我们介绍了如何使用Pandas组合日期和时间列,并进行日期和时间的一些操作,例如筛选、排序和算术运算。我们也看到了Pandas和Python的很多有用函数和方法。Pandas的数据结构和函数使得处理大型数据集更加容易和高效,从而使数据科学家和分析师能够进行更复杂的数据分析。
极客教程