Python 使用ifelse语句对数据帧进行子集

Python 使用ifelse语句对数据帧进行子集,python,pandas,amazon-s3,Python,Pandas,Amazon S3,我正在通过S3存储桶中的一些CSV,尝试查看存储桶中是否有只包含7月份数据的6月份数据 import pandas as pd import datetime import os import boto3 import s3fs from io import StringIO import numpy as np fs = myawskeys bucket = myawsbucket files = mylistoffiles master = [] for file in files:

我正在通过S3存储桶中的一些CSV,尝试查看存储桶中是否有只包含7月份数据的6月份数据

import pandas as pd
import datetime
import os
import boto3
import s3fs
from io import StringIO
import numpy as np

fs = myawskeys
bucket = myawsbucket
files = mylistoffiles

master = []
for file in files:
    with fs.open(file) as f:
        df = pd.read_csv(f, delimiter='|')
        df['occurred_at'] = pd.to_datetime(df['occurred_at'])
        df['generated_at'] = pd.to_datetime(df['generated_at'])
        for row in df['occurred_at'].dt.month:
            if row == 6:
                master.append(df.loc[row])

我想为第6个月的行创建一个新的数据框(在我的示例中为list=master)。当我的条件匹配时,我如何子集df?

您几乎是正确的,而不是for循环,您可以:

master = df[df['occurred_at'].dt.month == 6]
别忘了,我们现在正在创建
master
作为数据帧,而不是
列表
。因此,稍后要附加到
master
dataframe,您可以执行以下操作:

master = pd.concat([master, df])