【发布时间】:2021-08-03 22:54:04
【问题描述】:
我有一个名为“frame”的数据框,它有 16 列和 201 行。附上提供示例数据框的屏幕截图
请注意截图只是一个例子,原始数据框要大得多。
我想找到一种有效的方法(可能使用 for 循环或编写函数)来逐行平均数据框中的不同列。例如,要找到列 "rep" 和 "rep1" 和列 "repcycle" 和 "repcycle1" 的平均值(对于 set 和 setcycle) 并保存在只有平均列的新数据框。
我尝试过使用 iloc 编写代码
newdf= frame[['sample']].copy()
newdf['rep_avg']=frame.iloc[:, [1,5]].mean(axis=1) #average row-wise
newdf['repcycle_avg']=frame.iloc[:, [2,6]].mean(axis=1)
newdf['set_avg']=frame.iloc[:, [3,7]].mean(axis=1) #average row-wise
newdf['setcycle_avg']=frame.iloc[:, [4,8]].mean(axis=1)
newdf.columns = ['S', 'Re', 'Rec', 'Se', 'Sec']
上面的代码完成了这项工作,但是记录每一列的位置很乏味。我宁愿自动化这个过程,因为其他数据文件也会重复这个过程。
【问题讨论】:
标签: python pandas dataframe loops mean