首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动化Python任务

自动化Python任务
EN

Stack Overflow用户
提问于 2018-06-11 11:47:37
回答 1查看 68关注 0票数 0

我想自动化下面的python代码,以应用于不同的数据帧。

代码语言:javascript
复制
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'])

例如,上面的代码表示ID "08b56ebc-8eae-41b3-9c86-c79e3be542fd“是一个特定的人。如果我要计算我拥有的所有样本的T-test,那么我需要通过复制并粘贴到上面的代码中来不断地为每个人替换不同的ID。

有没有一种方法来自动化这个过程,从而使这些部分;

代码语言:javascript
复制
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'

我可以接受我所有的ID,并自动化整个过程。

最后,保存此函数生成的每个结果输出:

代码语言:javascript
复制
stats.ttest_rel(sample_1['raw_score_child_B'], sample_1['raw_score_child_A'])
EN

回答 1

Stack Overflow用户

发布于 2018-06-11 12:19:31

正如Klaus提到的,你需要一个接受参数的函数。你可以试着把你的代码放在一个函数中。您可能希望将您的ID存储在任何可迭代集合的列表中。您还可以将t-test结果存储在列表中。

代码语言:javascript
复制
    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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50790266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档