从 groupby 转换生成数据框
Generating a dataframe from a groupby transformation
我有这个代码:
df.droupby('type)['feature1].mean()
df
有 15 features
来自 1 to 15
我想遍历功能名称列表并将这 15 个结果附加到数据框中:
期望的输出:类型(数据帧)
type feature1 features2 ..... feature15
type_A mean(float) mean(float) mean(float)
type_B mean(float) mean(float) mean(float)
type_c mean(float) mean(float) mean(float)
我做了什么:
我有功能列表:
list = df.iloc[:, 10:24].columns.to_list()
并尝试了这样的事情:
for i in len(list):
df.groupby('type')[list[i]].mean()
看看我是否得到了什么,这行 returns 是一个错误:
'int' object is not iterable
谁能帮我解决这个问题?
IIUC,你可以简单地使用 groupby
+ mean
:
out = df.groupby('type', as_index=False).mean()
但是如果您有一堆其他列不想包含在计算中并且只想要“特征...”列的平均值,您可以 filter
,然后 groupby
+ mean
:
out = df.filter(like='feature').groupby(df['type']).mean().reset_index()
输出:
type feature1 feature2
0 A 10.0 11.0
1 B 12.0 14.0
2 C 13.0 13.0
3 D 12.0 19.0
4 E 10.0 10.0
我有这个代码:
df.droupby('type)['feature1].mean()
df
有 15 features
来自 1 to 15
我想遍历功能名称列表并将这 15 个结果附加到数据框中:
期望的输出:类型(数据帧)
type feature1 features2 ..... feature15
type_A mean(float) mean(float) mean(float)
type_B mean(float) mean(float) mean(float)
type_c mean(float) mean(float) mean(float)
我做了什么:
我有功能列表:
list = df.iloc[:, 10:24].columns.to_list()
并尝试了这样的事情:
for i in len(list):
df.groupby('type')[list[i]].mean()
看看我是否得到了什么,这行 returns 是一个错误:
'int' object is not iterable
谁能帮我解决这个问题?
IIUC,你可以简单地使用 groupby
+ mean
:
out = df.groupby('type', as_index=False).mean()
但是如果您有一堆其他列不想包含在计算中并且只想要“特征...”列的平均值,您可以 filter
,然后 groupby
+ mean
:
out = df.filter(like='feature').groupby(df['type']).mean().reset_index()
输出:
type feature1 feature2
0 A 10.0 11.0
1 B 12.0 14.0
2 C 13.0 13.0
3 D 12.0 19.0
4 E 10.0 10.0