Автоматизация Python Task - PullRequest
0 голосов
/ 11 июня 2018

Я хотел бы автоматизировать приведенный ниже код Python для применения к различным фреймам данных.

df_twitter = pd.read_csv('merged_watsonTwitter.csv')
df_original = pd.read_csv('merged_watsonOriginal.csv')

sample_1_twitter = df_twitter['ID_A'] == "08b56ebc-8eae-41b3-9c86-c79e3be542fd"
sample_1_twitter = df_twitter[sample_1_twitter]

sample_1_original = df_original['ID_B'] == "08b56ebc-8eae-41b3-9c86-c79e3be542fd"
sample_1_original = df_original[sample_1_original]

sample_1_twit_trunc = sample_1_twitter[['raw_score_parent_A','raw_score_child_A']]
sample_1_ori_trunc = sample_1_original[['raw_score_parent_B','raw_score_child_B']]

sample_1_twit_trunc.reset_index(drop=True, inplace=True)
sample_1_ori_trunc.reset_index(drop=True, inplace=True)

sample_1 = pd.concat([sample_1_twit_trunc, sample_1_ori_trunc], axis=1)
sample_1['ID'] = '08b56ebc-8eae-41b3-9c86-c79e3be542fd'

stats.ttest_rel(sample_1['raw_score_child_B'], sample_1['raw_score_child_A'])

Например, приведенный выше код, который указывает идентификатор "08b56ebc-8eae-41b3-9c86-c79e3be542fd",конкретного человека.Если я хочу рассчитать Т-тест для всех имеющихся у меня образцов, то мне нужно будет продолжать заменять разные идентификаторы для каждого, копируя и вставляя его в приведенный выше код.

Существует ли способ автоматизации этого процесса, при котором эти секции;

df_twitter['ID_A'] == "08b56ebc-8eae-41b3-9c86-c79e3be542fd"
df_original['ID_B'] == "08b56ebc-8eae-41b3-9c86-c79e3be542fd"
sample_1['ID'] = '08b56ebc-8eae-41b3-9c86-c79e3be542fd'

могут принимать все идентификаторы, которые у меня есть, и автоматизировать весь процесс.

В конце сохраните также каждый результат, сгенерированный этой функцией:

stats.ttest_rel(sample_1['raw_score_child_B'], sample_1['raw_score_child_A'])

1 Ответ

0 голосов
/ 11 июня 2018

Как упоминал Клаус, вам нужна функция, которая принимает аргументы.Вы можете просто попытаться поместить свой код в функцию.Вы можете сохранить свои идентификаторы в списке любой повторяемой коллекции.Вы также можете сохранить результаты t-теста в виде списка.

    ids = ["08b56ebc-8eae-41b3-9c86-c79e3be542fd","08b56ebc-8eae-41b3-9c86-c79e3be542f4"]

    def runTTest (id,df_twitter,df_original):
        sample_1_twitter = df_twitter['ID_A'] == id
        sample_1_twitter = df_twitter[sample_1_twitter]

        sample_1_original = df_original['ID_B'] == id
        sample_1_original = df_original[sample_1_original]

        sample_1_twit_trunc = 
        sample_1_twitter[['raw_score_parent_A','raw_score_child_A']]
        sample_1_ori_trunc = 
        sample_1_original[['raw_score_parent_B','raw_score_child_B']]

        sample_1_twit_trunc.reset_index(drop=True, inplace=True)
        sample_1_ori_trunc.reset_index(drop=True, inplace=True)

        sample_1 = pd.concat([sample_1_twit_trunc, sample_1_ori_trunc], axis=1)
        sample_1['ID'] = id

        return stats.ttest_rel(sample_1['raw_score_child_B'], sample_1['raw_score_child_A'])

    t_test_results=[]
    for id in ids:
        t_test_results.append(runTTest(id,df_twitter ,df_original))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...