如何在函数列表中迭代不同的数据框?

时间:2019-10-30 09:41:42

标签: python pandas dataframe

我是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

1 个答案:

答案 0 :(得分:0)

  1. 阅读完整的df
  2. 从完整的df中获得独特的品牌(请参阅独特)
  3. 遍历品牌
  4. 对于每个品牌过滤器/从与当前品牌相对应的完整df行中进行选择,然后创建sub_df
  5. 将功能应用于sub_df