当我们需要在Pandas数据框架中根据时间进行筛选和过滤时,我们通常使用两个重要的概念:索引和切片。通过这两个概念,我们可以轻松地对数据框架进行按时间段的筛选。下面是详细的攻略。
1. 生成时间索引
首先,我们需要生成时间索引。Pandas的date_range()
函数可以用于生成一组时间序列。
import pandas as pd
# 生成一个包含30天时间序列的DataFrame
datelist = pd.date_range('2021-01-01', periods=30)
df = pd.DataFrame({'date': datelist})
上述代码中,我们首先使用date_range()
函数生成了从2021年1月1日开始的30天时间序列。接着,我们将其转化为数据框架,并将其保存在变量df
中。
2. 将时间索引设置为DataFrame的索引
设置时间索引后,我们需要将其设置为数据框架的索引。通过设置索引,我们可以轻松地在时间范围内筛选数据。
# 将'date'列设置为DataFrame的索引
df.set_index('date', inplace=True)
上述代码中,我们使用set_index()
函数将date
列设置为数据框架的索引。
3. 按时间过滤
接下来,我们可以使用切片来按时间段过滤数据。切片的写法与Python中的List或者Numpy中array的切片类似。
# 选择2021年1月的数据
df['2021-01']
# 选择2021年1月1日到1月15日的数据
df['2021-01-01':'2021-01-15']
上述代码中,我们使用了方括号[]
进行切片,可以根据不同的时间段进行数据过滤。
4. 示例
import pandas as pd
# 生成一个包含30天时间序列的DataFrame
datelist = pd.date_range('2021-01-01', periods=30)
df = pd.DataFrame({'date': datelist, 'value': range(30)})
# 将'date'列设置为DataFrame的索引
df.set_index('date', inplace=True)
# 选择2021年1月1日到1月15日的数据
df_jan = df['2021-01-01':'2021-01-15']
# 输出结果
print(df_jan)
上述代码中,我们生成了一个包含30天时间序列的数据框架,并将其转化为时间索引。接着,我们使用切片来选择1月1日到1月15日的数据,并将其保存在变量df_jan
中。最后,我们通过print()
函数输出结果。
输出结果为:
value
date
2021-01-01 0
2021-01-02 1
2021-01-03 2
2021-01-04 3
2021-01-05 4
2021-01-06 5
2021-01-07 6
2021-01-08 7
2021-01-09 8
2021-01-10 9
2021-01-11 10
2021-01-12 11
2021-01-13 12
2021-01-14 13
2021-01-15 14
从结果可以看出,我们成功地按时间过滤了数据,并得到了所需的结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:按时间过滤Pandas数据框架 - Python技术站