Pandas选择月份和年份

2024-04-19 12:03:55 发布

您现在位置:Python中文网/ 问答频道 /正文

试图子集一个数据帧,最终想要将某个月份和年份(比如2020年11月)导出到CSV。但是我被困在选择部分,日期列是DD/MM/YYYY格式的。我的尝试-

csv = r"C:\Documents\Transactions.csv"
current_month = 11
current_year = 2020
            
data =pd.read_csv(csv, sep=',', index_col = None)
        
df = data[pd.to_datetime(data['Date'],dayfirst=True).dt.month == current_month &(pd.to_datetime(data['Date']).dt.year==current_year)]
            
print(df)

结果是具有正确年份的行,但包括所有月份,而我希望它限制当前的_month变量。谢谢你的帮助


Tags: csvto数据dfdatadatetimedatedt
2条回答

首先将列Date转换为日期格式,然后像往常一样执行选择部分

import pandas as pd

df = pd.read_csv('data-date.txt')
current_month = 11
current_year = 2020
    
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df[(df['Date'].dt.month == current_month) & (df['Date'].dt.year == current_year)]

鉴于您有一个日期列,我建议您首先转换该列,就像转换两次一样。不能将.dt.month应用于系列(整列)。 然后将其应用于该系列

import datetime as dt
data['Date']= pd.to_datetime(data['Date'], dayfirst=True)
df = data[(data['Date'].apply(lambda x: x.month) == current_month) & 
(data['Date'].apply(lambda y: y.year) == current_year)]

相关问题 更多 >