Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas Dataframe:在不断增加的列数上循环并计算平均值和标准值_Python_Pandas_Dataframe_Pandas Groupby - Fatal编程技术网

Python Pandas Dataframe:在不断增加的列数上循环并计算平均值和标准值

Python Pandas Dataframe:在不断增加的列数上循环并计算平均值和标准值,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,基本上,我有一个包含20个属性和一个值的表。我想找到std=0时所需的最低属性数(即粒度级别完美到允许1:1) 我想设置一个循环,如果使用列名进行硬编码,它将如下所示: for iter in range(1,21): dfcalc = df.groupby("LINE_NUM")["RATIO"].agg([np.mean, np.std]) dfcalc = df.groupby("LINE_NUM","TYPE")["RATIO"].agg([np.mean, np.std])

基本上,我有一个包含20个属性和一个值的表。我想找到std=0时所需的最低属性数(即粒度级别完美到允许1:1)

我想设置一个循环,如果使用列名进行硬编码,它将如下所示:

for iter in range(1,21):
  dfcalc = df.groupby("LINE_NUM")["RATIO"].agg([np.mean, np.std])
  dfcalc = df.groupby("LINE_NUM","TYPE")["RATIO"].agg([np.mean, np.std])

如何使用循环中的iter变量定义我要分组的列?

如果我正确理解您的要求,您可以这样做:

for i in range(1, len(df.columns) + 1):
    df.groupby(df.columns[:i].tolist()).agg([np.mean, np.std])
iter
是内置函数的名称)


您也可以使用
.iloc
进行。

如果我正确理解您的需求,您可以执行以下操作:

for i in range(1, len(df.columns) + 1):
    df.groupby(df.columns[:i].tolist()).agg([np.mean, np.std])
iter
是内置函数的名称)


您也可以使用
.iloc
进行。

我得到“ValueError:gropper和axis必须具有相同的长度”。另外,它不需要指定它应该表示的列和std:import pandas as pd,numpy as np df=pd.DataFrame(np.array(['A','A','C',7],'W','C','D',8],'W','A','C',9]),columns=['att1','att2','att3','ratio'])范围(1,len df columns)+1):df groupby(df columns[:i]).agg([np mean,np std])我得到“ValueError:Grouper和axis必须具有相同的长度”。另外,它不需要指定它应该表示的列以及std:import pandas as pd,numpy as np df=pd.DataFrame(np.array([[A','A','C',7','W','C','D',8','W','A','C',9]]),列=['att1,len df columns)+1:df groupby范围内i的[att1','att2','att3','ratio'])(df.列[:i]).agg([np.平均值,np.标准])