创建一个描述一组数据框的函数

时间:2019-12-27 12:26:13

标签: python pandas function

我想创建一个函数,该函数将为传递给函数参数的所有数据帧提供df.describe的输出。

我的想法是将所有数据框(我需要描述的名称)作为列存储在单独的数据框(x)中,然后将其传递给函数。

这是我所做的和输出: 问题在于它仅显示了一个数据帧的描述

def des(df):
coloumns = df.columns
for coloumn in coloumns:

    coloumn=pd.read_csv('SKUs\\'+coloumn+'.csv')
    coloumn['Date'] = pd.to_datetime(coloumn['Date'].astype(str),dayfirst = True, format ='%d&m%y',infer_datetime_format=True)
    coloumn.dropna(inplace=True)

return(coloumn.describe())
data = {'UGCAA':[],'FAPG1':[],'ACSO5':[],'LGHF2':[],'LGMP8':[],'GGAF1':[]}
df=pd.DataFrame(data)
df

des(df)

        Sales
count   948.000000
mean    876.415612
std     874.373236
min     1.000000
25%     298.750000
50%     619.500000
75%     1148.500000
max     7345.00000

2 个答案:

答案 0 :(得分:1)

我相信您可以创建DataFrame和最后concat一起的列表:

def des(df):
    dfs = []
    for coloumn in df.columns:

        df1=pd.read_csv('SKUs\\'+coloumn+'.csv')
        df1['Date'] = pd.to_datetime(df1['Date'].astype(str),
                                     format ='%d%m%y',infer_datetime_format=True)
        df1.dropna(inplace=True)
        dfs.append(df1.describe())

    return pd.concat(dfs, axis=1, keys=df.columns)

答案 1 :(得分:0)

这是因为您每次都循环并重置列,而仅返回一个。为了仅显示它,您可以只在每个循环中打印describe,或将它们存储在一个变量中并在循环后对其进行处理。

def des(df):
    coloumns = df.columns
    for coloumn in coloumns:

        coloumn=pd.read_csv('SKUs\\'+coloumn+'.csv')
        coloumn['Date'] = pd.to_datetime(coloumn['Date'].astype(str),dayfirst = True, format ='%d&m%y',infer_datetime_format=True)
        coloumn.dropna(inplace=True)
        print(coloumn.describe())