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