所以我有一个数据框,它写入了一个看起来像这样的csv文件
Atrasos,Data
18,2019-08-24
22,2019-08-25
52,2019-09-21
31,2019-09-22
当达到每月的最后一天时,我想过滤该数据框以获取从实际月份的第一天到最后一天的值,然后将其返回以呈现图形。
我创建了一个有12个月的列表,然后将ActualMonth设置为变量,现在我要执行包含过滤器的if条件。
def graphs():
months = [1,2,3,4,5,6,7,8,9,10,11,12]
now = datetime.now()
actualMonth = now.month
file = pd.read_csv('files/graphs/delayedData.csv')
file['Data'] = pd.to_datetime(file['Data'])
if actualMonth in months:
#do the filter depending on the month we are
我进行了搜索,但找不到任何有帮助的内容...
预期的输出将是从第一天到结束只有当前月份的数据框,因此我可以抓取该数据框并创建图形。 因此,本月(八月)应该会这样回来
Atrasos,Data
18,2019-08-24
22,2019-08-25
然后,我应该能够在到达最后一天的每个月中获取这些数据并构建图形。
答案 0 :(得分:1)
将Series.dt.month
与boolean indexing
一起使用:
df = file[file['Data'].dt.month == actualMonth]
#alternative
#df = file[file['Data'].dt.month == pd.datetime.now().month]
print (df)
Atrasos Data
0 18 2019-08-24
1 22 2019-08-25
答案 1 :(得分:1)
尝试一下:
import datetime;
today = str(datetime.date.today());
curr_month = int(today[5:7]);
file[file['Data'].dt.month==curr_month]