Python 使用ifelse语句对数据帧进行子集
我正在通过S3存储桶中的一些CSV,尝试查看存储桶中是否有只包含7月份数据的6月份数据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:
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])