Python 如何迭代&;对数据帧中的列执行操作

Python 如何迭代&;对数据帧中的列执行操作,python,pandas,Python,Pandas,有人可以建议处理此数据集的方法/代码吗。需要为每个类别编写一个用户定义的函数,以计算每个参数列的最大值、最小值等 这是我试过的截取的代码- def stats(parameter): print("######################") print(parameter) max = parameter.max() mean = parameter.mean() min = parameter.min() print("stats func

有人可以建议处理此数据集的方法/代码吗。需要为每个类别编写一个用户定义的函数,以计算每个参数列的最大值、最小值等

这是我试过的截取的代码-

def stats(parameter):
    print("######################")
    print(parameter)
    max = parameter.max()
    mean = parameter.mean()
    min = parameter.min()
    print("stats function executed")
for column in df1.ix[:,2:]:
    print(column)
    stats(column)

选择列需要
df1[]

for column in df1.ix[:,2:]:
    print(column)
    stats(df1[column])
但更好的方法是使用:

最后是可能的过滤器输出:

L = ['mean','max','min']
print (df.loc[L])
      Parameter1  Parameter2  Parameter3
mean         8.0         3.0    4.666667
max          9.0         5.0    7.000000
min          7.0         1.0    3.000000

使用
groupby
和内置的
description
功能,您可以获得:

In [7]: df = pd.DataFrame({'Categories': ['a', 'a', 'b', 'b'], 'Param1': [42, 10, 123.23, 0.1], 'Param2': 
   ...: [13, 16, 12.23, -2]})

In [8]: df
Out[8]: 
  Categories  Param1  Param2
0          a   42.00   13.00
1          a   10.00   16.00
2          b  123.23   12.23
3          b    0.10   -2.00

In [9]: df.groupby('Categories').describe()
Out[9]: 
                      Param1     Param2
Categories                             
a          count    2.000000   2.000000
           mean    26.000000  14.500000
           std     22.627417   2.121320
           min     10.000000  13.000000
           25%     18.000000  13.750000
           50%     26.000000  14.500000
           75%     34.000000  15.250000
           max     42.000000  16.000000
b          count    2.000000   2.000000
           mean    61.665000   5.115000
           std     87.066058  10.062129
           min      0.100000  -2.000000
           25%     30.882500   1.557500
           50%     61.665000   5.115000
           75%     92.447500   8.672500
           max    123.230000  12.230000
如果你把它拆开,你会得到:

In [10]: df.groupby('Categories').describe().unstack()
Out[10]: 
           Param1                                                             \
            count    mean        std   min      25%     50%      75%     max   
Categories                                                                     
a             2.0  26.000  22.627417  10.0  18.0000  26.000  34.0000   42.00   
b             2.0  61.665  87.066058   0.1  30.8825  61.665  92.4475  123.23   

           Param2                                                            
            count    mean        std   min      25%     50%      75%    max  
Categories                                                                   
a             2.0  14.500   2.121320  13.0  13.7500  14.500  15.2500  16.00  
b             2.0   5.115  10.062129  -2.0   1.5575   5.115   8.6725  12.23 

感谢@Langitar的描述性回答,并提高了熊猫功能方面的知识。
In [10]: df.groupby('Categories').describe().unstack()
Out[10]: 
           Param1                                                             \
            count    mean        std   min      25%     50%      75%     max   
Categories                                                                     
a             2.0  26.000  22.627417  10.0  18.0000  26.000  34.0000   42.00   
b             2.0  61.665  87.066058   0.1  30.8825  61.665  92.4475  123.23   

           Param2                                                            
            count    mean        std   min      25%     50%      75%    max  
Categories                                                                   
a             2.0  14.500   2.121320  13.0  13.7500  14.500  15.2500  16.00  
b             2.0   5.115  10.062129  -2.0   1.5575   5.115   8.6725  12.23