我想创建一个函数,该函数将为传递给函数参数的所有数据帧提供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
答案 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())