首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于列条件从单个数据中提取几个不同的数据

基于列条件从单个数据中提取几个不同的数据
EN

Stack Overflow用户
提问于 2018-03-23 04:58:33
回答 1查看 28关注 0票数 1

我有一个大约600行的,其中有一个名为"PAGE_NAME“的列,其中包含8个唯一的字符串值。以下是本专栏中的8个唯一字符串值:

代码语言:javascript
复制
my_list_of_strings = ['Demographics', 'SummaryMeasuresOfHealth', 'LeadingCausesOfDeath', 'MeasuresOfBirthAndDeath', 'RelativeHealthImportance', 'VunerablePopsAndEnvHealth', 'PreventiveServicesUse', 'RiskFactorsAndAccessToCare']

在这个dataframe中还有另外6列。

我想要做的是创建8个新的dataframes,每个字符串一个,其中8个新的dataframes中的每一个都只包含给定字符串位于"PAGE_NAME“列中的行。

我想给这8个新数据格式中的每一个分配一个包含字符串的变量名称:类似于Demographics_df、SummaryMeasuresOfHealth_df等.

我编写了一个函数(如下所示),它创建了一个数据格式列表,但是(1)我不知道如何提取8个单独的数据格式,(2)我不知道如何在变量名中使用适当的字符串给它们命名。

代码语言:javascript
复制
def make_pagename_dataframes(page_name_list):
    list_of_dfs = []
    for i in page_name_list:
list_of_dfs.append(original_df.loc[original_df['PAGE_NAME'] == i])
    return list_of_dfs

list_of_new_dfs = make_pagename_dataframes(my_list_of_strings)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-23 05:03:15

你可以用groupby来做这件事

代码语言:javascript
复制
dict_of_dfs = {k: v for k, v in original_df.groupby('PAGE_NAME')}

或者是他们的名单

代码语言:javascript
复制
list_of_dfs = [v for k, v in original_df.groupby('PAGE_NAME')]

去拿你的8条数据。请注意,我要多加一点,以防你有比你说的字符串数量更多的字符串。但是,如果您没有至少8个唯一的字符串,这将失败。

代码语言:javascript
复制
d1, d2, d3, d4, d5, d6, d7, d8, *therest = (
    v for k, v in original_df.groupby('PAGE_NAME')
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49442630

复制
相关文章

相似问题

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