подмножество pandas кадра данных с оператором ifelse - PullRequest
0 голосов
/ 14 июля 2020

Я просматриваю несколько CSV-файлов в сегменте S3 и пытаюсь проверить, есть ли в сегменте данные за июнь, которые должны содержать только данные за июль.

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])

Я хочу создать новый dataframe (list = master в моем примере) строк, которые находятся в месяце 6. Как мне подмножество df, если мое условие соответствует?

1 Ответ

1 голос
/ 14 июля 2020

Вы почти правы, вместо l oop вы делаете:

master = df[df['occurred_at'].dt.month == 6]

Не забывайте, что теперь мы создаем master как фрейм данных вместо list. Итак, позже, чтобы добавить к master фрейм данных, вы можете сделать:

master = pd.concat([master, df])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...