【问题标题】:How to use def-return or for-in statements on dataframes to avoid repetitions in code in python /pandas如何在数据帧上使用 def-return 或 for-in 语句来避免 python /pandas 中的代码重复
【发布时间】:2020-04-21 18:39:46
【问题描述】:

有人可以看看下面的代码并建议我做错了什么。

我有 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】:

    看起来你的函数应该有两个参数——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
    

    【讨论】:

    • 感谢您的详细回复。该代码现在可以正常工作,但没有产生任何输出。该代码最初给了我很多错误。我不明白为什么。终于想通了。这是不正确的缩进。我不知道每一行都应该以与上面代码中完全相同的顺序和间距开始。我是编程新手。如果您能澄清一下为什么我没有在屏幕上看到输出,尽管有“打印”声明,这将有所帮助。
    • 除了确认打印命令没有输出的原因之外,您是否还可以提供代码,以便在项目后期在另一组数据帧和变量上再次调用程序。提前致谢
    猜你喜欢
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多