преобразование скрипта Python в функцию для итерации по каждой строке

1

Как я могу преобразовать приведенный ниже сценарий python в fucntion, чтобы я мог вызывать его по каждой строке фрейма данных, в котором я хочу сохранить несколько переменных динамическими, например screen_name, domain

    # We create a tweet list as follows:
    tweets = extractor.user_timeline(screen_name="abhi98358", count=200)


    data = pd.DataFrame(data=[tweet.text for tweet in tweets], columns=['Tweets'])

    # We add relevant data:
    data['ID'] = np.array([tweet.id for tweet in tweets])
    data['Date'] = np.array([tweet.created_at for tweet in tweets])
    data['text'] = np.array([tweet.text for tweet in tweets])
    #data['Date'] = pd.to_datetime(data['Date'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')

    created_time = datetime.datetime.utcnow() - datetime.timedelta(minutes=1)

    data = data[(data['Date'] > created_time) & (
        data['Date'] < datetime.datetime.utcnow())]

    my_list = ['Maintenance', 'Scheduled', 'downtime', 'Issue', 'Voice', 'Happy',
               'Problem', 'Outage', 'Service', 'Interruption', 'voice-comms', 'Downtime']

    ndata = data[data['Tweets'].str.contains(
        "|".join(my_list), regex=True)].reset_index(drop=True)

slack = Slacker('xoxb-34234-44232424-sdkjfksdfjksd')

#message = "test message"
slack.chat.post_message('#ops-twitter-alerts', 'domain :' +' '+ ndata['Tweets'] + '<!channel|>')

мой кадр данных выглядит следующим образом:

inp = [{'client': 'epic', 'domain':'fnwp','twittername':'FortniteGame'},{'client': 'epic', 'domain':'fnwp','twittername':'Rainbow6Game'},{'client': 'abhi', 'domain':'abhi','twittername':'abhi98358'}]
df = pd.DataFrame(inp)

Я хочу перебирать по каждой строке один за другим, например, начинать с очищения данных и отправлять уведомление о слабом состоянии, а затем перейти ко второй строке.

Я уже прошел через Как перебирать строки в DataFrame в Pandas?

Теги:
pandas
dataframe
python-3.x
automation

1 ответ

1
Лучший ответ

Вот ты иди приятель:

for index, row in dff.iterrows():
    twt=row['twittername']
    domain = row['domain']
    print(twt)
    print(domain)
    extractor = twitter_setup()
    # We create a tweet list as follows:
    tweets = extractor.user_timeline(screen_name=twt, count=200)
    data = pd.DataFrame(data=[tweet.text for tweet in tweets], columns=['Tweets'])

    # We add relevant data:
    data['ID'] = np.array([tweet.id for tweet in tweets])
    data['Date'] = np.array([tweet.created_at for tweet in tweets])
    data['text'] = np.array([tweet.text for tweet in tweets])
    #data['Date'] = pd.to_datetime(data['Date'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')

    created_time = datetime.datetime.utcnow() - datetime.timedelta(minutes=160)

    data = data[(data['Date'] > created_time) & (data['Date'] < datetime.datetime.utcnow())]

    my_list = ['Maintenance', 'Scheduled', 'downtime', 'Issue', 'Voice', 'Happy','hound',
               'Problem', 'Outage', 'Service', 'Interruption', 'ready','voice-comms', 'Downtime','Patch']

    ndata = data[data['Tweets'].str.contains( "|".join(my_list), regex=True)].reset_index(drop=True)

    print(ndata)
    if len(ndata['Tweets'])> 0:
        slack.chat.post_message('#ops-twitter-alerts', domain  +': '+ ndata['Tweets'] + '<!channel|>')
    else:
        print('hi')
  • 0
    Wooh: D теперь это решение ... спасибо большое приятель

Ещё вопросы

Сообщество Overcoder
Наверх
Меню