📌  相关文章
📜  如何根据 Pandas 中的日期过滤 DataFrame 行?

📅  最后修改于: 2022-05-13 01:54:35.418000             🧑  作者: Mango

如何根据 Pandas 中的日期过滤 DataFrame 行?

按日期过滤 DataFrame 行会根据包含日期数据的列选择满足指定日期约束的所有行。例如,选择 2020 年 3 月 13 日和 2020 年 12 月 31 日之间的所有行,将返回日期值在该范围内的所有行。

使用 DataFrame.loc() 和索引语法 [condition] 仅从 DataFrame 中选择满足条件的行。定义条件以检查 DataFrame 中的日期列是否在约束范围内。它将为所有行创建一个布尔数组。只有具有真值的行才会被打印。

请参阅以下示例。从这里下载数据框。

方法:

  • 将数据列转换为Python支持的日期格式
  • 根据日期过滤行
  • 使用 .loc()函数访问行并将它们存储在数据帧中。

示例 1:

Python3
# import pandas library
import pandas as pd
  
# load csv file
df = pd.read_csv(
    "C:\\Users\\Rohan\\OneDrive\\Desktop\\GFG\\netflix_titles.csv")
  
# convert date column into date format
df['date_added'] = pd.to_datetime(df['date_added'])
  
# filter rows on the basis of date
newdf = (df['date_added'] > '01-03-2020') & (df['date_added'] <= '31-12-2020')
  
# locate rows and access them using .loc() function
newdf = df.loc[newdf]
  
# print dataframe
print(newdf)


Python3
# import pandas library
import pandas as pd
  
# load csv file
df = pd.read_csv(
    "C:\\Users\\Rohan\\OneDrive\\Desktop\\GFG\\netflix_titles.csv")
  
# convert date column into date format
df['date_added'] = pd.to_datetime(df['date_added'])
  
# filter rows on the basis of date
newdf = (df['date_added'] > '01-01-2019') & (df['date_added'] <= '31-12-2019')
  
# locate rows and access them using .loc() function
newdf = df.loc[newdf]
  
# print dataframe
print(newdf)


输出:

2020 年 3 月 13 日至 2020 年 12 月 31 日之间的所有电影都将被打印。

示例 2:

蟒蛇3

# import pandas library
import pandas as pd
  
# load csv file
df = pd.read_csv(
    "C:\\Users\\Rohan\\OneDrive\\Desktop\\GFG\\netflix_titles.csv")
  
# convert date column into date format
df['date_added'] = pd.to_datetime(df['date_added'])
  
# filter rows on the basis of date
newdf = (df['date_added'] > '01-01-2019') & (df['date_added'] <= '31-12-2019')
  
# locate rows and access them using .loc() function
newdf = df.loc[newdf]
  
# print dataframe
print(newdf)

输出:

上面的输出打印了 2019 年在 Netflix 上添加的所有电影。