Python 寻找;熊猫";将多列聚合到一行的方法
我正在处理包含许多图像衍生特征的表,一个图像序列的每个时间点都有一行特征,还有多个图像。图像标识符包含在一列中。为了压缩(主要用于平行坐标图),我想将列减少/聚合为单个值。必须根据列中的特征(例如平均值、最大值或自定义值)选择“减少”操作。DataFrame.agg看起来很自然,但它给了我一个包含多行的表。现在我正在做这样的事情:Python 寻找;熊猫";将多列聚合到一行的方法,python,pandas,Python,Pandas,我正在处理包含许多图像衍生特征的表,一个图像序列的每个时间点都有一行特征,还有多个图像。图像标识符包含在一列中。为了压缩(主要用于平行坐标图),我想将列减少/聚合为单个值。必须根据列中的特征(例如平均值、最大值或自定义值)选择“减少”操作。DataFrame.agg看起来很自然,但它给了我一个包含多行的表。现在我正在做这样的事情: result_df = DataFrame() for col in df.columns: if col in ReduceThisColumnByMean:
result_df = DataFrame()
for col in df.columns:
if col in ReduceThisColumnByMean:
result_df[col] = df.mean()
elif col in ReduceThisColumnByMax:
result.df[col] = df.max()
对我来说,这似乎是一条迂回之路,可能无法很好地扩展(这不是一个大问题,因为reduce操作的数量很可能不会超过几个)。是否有更简单的方法将具有特定操作的多个列聚合到一行?您可以按列表选择所有列,获取
mean
和max
并通过最后一次将Series
转换为一行DataFrame
并进行转置:
result_df = pd.concat([df[ReduceThisColumnByMean].mean(),
df[ReduceThisColumnByMax].max()]).to_frame().T