我有一个大约600行的,其中有一个名为"PAGE_NAME“的列,其中包含8个唯一的字符串值。以下是本专栏中的8个唯一字符串值:
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)我不知道如何在变量名中使用适当的字符串给它们命名。
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)发布于 2018-03-23 05:03:15
你可以用groupby来做这件事
dict_of_dfs = {k: v for k, v in original_df.groupby('PAGE_NAME')}或者是他们的名单
list_of_dfs = [v for k, v in original_df.groupby('PAGE_NAME')]去拿你的8条数据。请注意,我要多加一点,以防你有比你说的字符串数量更多的字符串。但是,如果您没有至少8个唯一的字符串,这将失败。
d1, d2, d3, d4, d5, d6, d7, d8, *therest = (
v for k, v in original_df.groupby('PAGE_NAME')
)https://stackoverflow.com/questions/49442630
复制相似问题