如何在数据帧上使用def-return或for-in语句,以避免python / pandas中的代码重复

问题描述 投票:0回答:1

有人可以看下面的代码,并提出我做错了什么。

我有2个熊猫数据帧-df和x1两者具有相同的列和列名

我必须对df.Date_Appointment,x1.Date_Appointment和df.Date_Scheduled和x1.Date_Scheduled执行类似的代码集。这样就为列和数据框创建了一个列表。

我正在尝试编写单个代码,但显然我做错了。请指教。

import pandas as pd
df = pd.read_csv(file1.csv)
x1 = pd.read_csv(file2.csv)

# x1 is a dataframe created after filtering on one column. # df and x1 have same number of columns and column names # x1 is a subset of df``

dataframe = ['df','x1']
column = ['Date_Appointment', 'Date_Scheduled']

def df_det (dataframe.column):

    (for df_det in dataframe.column :

        d_da = df_det.describe()
        mean_da = df_det.value_counts().mean()
        median_da = df_det.value_counts().median()
        mode_da = df_det.value_counts().mode()

        print('Details of all  appointments', '\n', 

         d_da, '\n',
         'Mean = ', mean_da,'\n', 
         'Median = ', median_da,'\n',
         'Mode = ',mode_da,'\n'))

请说明步骤。预先谢谢你。

python pandas function dataframe repeat
1个回答
0
投票

似乎您的函数应该有两个参数-dataframecolumn-这两个都是列表,因此我将名称复数了。

然后您需要遍历每个参数。请注意,您还在函数中为数据帧分配了与函数相同的名称,因此我更改了函数的名称。

dataframes = [dataframe1, dataframe2]
columns = ['Date_Appointment', 'Date_Scheduled']

def summary_stats(dataframes, columns):
    for df in dataframes:
        for col in cols:
            df_det = df.loc[:, col]
            # print summary stats about df_det
© www.soinside.com 2019 - 2024. All rights reserved.