我有一个这样的数据框df:
A B C D E F .... Z
0 3 4 7 1 5 10 .... 2
1 2 5 8 3 3 18 .... 3
2 5 4 9 5 6 75 .... 2
3 1 5 4 7 9 7 .... 1
4 4 5 2 1 2 10 .... 1
5 7 4 3 0 4 10 .... 0
我为这样的列F添加了一个具有统计信息的新列:
df['F_mean'] = df['F'].mean()
df['F_std'] = df['F'].std()
df['F_min'] = df['F'].min()
df['F_max'] = df['F'].max()
有什么方法可以为我添加所有列的统计平均值,std,min,max,而无需手动输入每个新列吗?我尝试使用此代码作为均值函数,但得到的错误代码为“索引”对象没有属性“均值”。
df[columns + '_mean'] = df.columns.mean()
我的目标是将这样的列添加到我的df数据框中,但对于从A到Z的每个列
A_mean A_min A_max ....Z_max
0 1 4 7
1 1 4 7
2 1 4 7
3 1 4 7
4 1 4 7
5 1 4 7
谢谢你, R
答案 0 :(得分:3)
您可以使用DataFrame
查找describe()
。
df.describe()
此功能可同时为您提供一些有用的功能。例如,您将获得三个四分位数,均值,计数,最小值和最大值以及标准偏差。这非常有用,尤其是在探索性数据分析中。
只是一个例子:
>>> df
col1 col2 col3
0 1 50 3
1 1 40 3
2 1 11 3
3 2 10 4
4 2 25 4
>>> df.describe()
col1 col2 col3
count 5.000000 5.000000 5.000000
mean 1.400000 27.200000 3.400000
std 0.547723 17.655028 0.547723
min 1.000000 10.000000 3.000000
25% 1.000000 11.000000 3.000000
50% 1.000000 25.000000 3.000000
75% 2.000000 40.000000 4.000000
max 2.000000 50.000000 4.000000
我看不到将它们全都放在一栏中,但是您可以定义。
df.std(axis=0)
df.std(axis=1)
因此,由于不是特定于行或列,您可以对所有内容进行如下尝试。
df['F_mean'] = df.mean(axis=1)
df['F_std'] = df.std(axis=1)
df['F_min'] = df.min(axis=1)
df['F_max'] = df.max(axis=1)
更好:
>>> df.describe().loc[['count','mean', 'std', 'min', 'max']]
col1 col2 col3
count 5.000000 5.000000 5.000000
mean 1.400000 27.200000 3.400000
std 0.547723 17.655028 0.547723
min 1.000000 10.000000 3.000000
max 2.000000 50.000000 4.000000
答案 1 :(得分:1)
您可以使用.describe()
并选择实际需要的行。