首页 > 解决方案 > 如何在函数列表中迭代不同的数据框?

问题描述

我是 python 的初学者,我正在努力寻找完成以下任务的最佳方法:

我有一个大型数据集,其中每个观察都指向不同的品牌。在这个数据集上,我之前创建了一些列,对执行某些功能很有用。

我创建了一些创建表格的函数,然后这些表格将包含在一个 Excel 文件中。我必须为每个数据框执行此操作,并根据品牌进行拆分。

我试图构建一个函数列表和一个选定品牌列表,我需要为其创建文件 excel. 但是当我想用循环来做这件事时,我迷路了。

创建我需要在文件中插入的表的函数 excel

def tab_new_born(df):
    tab_1 = df_cliente.astype(str).groupby('definitive_class').agg({'definitive_class': lambda x: x.count()})
    return tab_1

def tab_updated_and_working(df):
    tab_2 =  pd.crosstab((df_cliente.FIRMWARE_STATUS_UPDATE == 'updated'), (df_cliente.app_trans_features == 1), margins = True)
    tab_2.rename(index = {False : 'no', True : 'yes', 'All' : 'Total'}, 
             columns = {False : 'no_trans_in_7_last_days', True : 'yes_trans_in_7_last_days','All' : 'Total' }, inplace= True)
    return tab_2  

#file excel
output =  '_output.xlsx'
writer = pd.ExcelWriter(output, engine='xlsxwriter')


tab_new_born(df).to_excel(writer, sheet_name= 'MHT_classification')
tab_updated_and_working(df).to_excel(writer,sheet_name = '#VM_operative')
tab_working_and_anomalous(df).to_excel(writer,sheet_name = '#VM_conn_problems_operative')
tab_working_and_registry(df).to_excel(writer,sheet_name = '#VM_registry_null')

workbook = writer.book

writer.save()
workbook.close()

我想创建一个循环,其中:1)从通用数据集中选择品牌以获得品牌的单个数据框;2) 对于每个分离的数据集,执行函数并创建相应的文件 excel

标签: pythonpandasdataframe

解决方案


  1. 阅读完整的 df
  2. 从完整的 df 获得独特的品牌(见独特的)
  3. 循环品牌
  4. 对于每个品牌过滤器/从与当前品牌对应的完整 df 行中选择并创建一个 sub_df
  5. 在 sub_df 上应用您的功能

推荐阅读