我想将平均值从一个数据帧(df1)写入另一个数据帧(dfmaster)。 我可以手动管理它,但我希望以这种方式自动化这个过程,它将从df1中读取所有列名称(作为变量),这些变量将用于下面的代码中,以计算数据帧(df1)中所有列的平均值
根据此数据框,应计算列的平均值:
import pandas as pd
data = [[6.2, 10, 8], [6.4, 15, 13], [6.6, 14, 6]]
df1 = pd.DataFrame(data, columns = ['Prozess233', 'Prozess234', 'Prozess235'])
df1
这是应存储方法的主数据帧:
data = [['Prozess233','NaN', 'NaN','NaN'], ['Prozess234','NaN', 'NaN', 'NaN'], ['Prozess235','NaN', 'NaN', 'NaN']]
dfmaster = pd.DataFrame(data, columns = ['Process', 'Mean', 'St.Dev', 'Max'])
dfmaster
以下是计算df1一列平均值并将值存储在主数据帧中的代码:
index = dfmaster.loc[dfmaster['Process'] == 'Prozess233'].index[0]
keep_col = ['Prozess233']
df1 = df1[keep_col]
df1 = df1[df1['Prozess233'].notna()]
meanPR = df1["Prozess233"].mean()
dfmaster.at[index, 'Mean'] = meanPR
结果是:
我希望有一个循环,上面的代码(将平均值存储到主数据帧)将对数据帧df1的所有列执行,即“Prozess234”和“Prozess235”的平均值。
我不知道如何存储列名(df1),以便在循环中使用它们。 我不确定这是否是正确的方法
虽然您可以通过
df.columns
获得数据帧的列,但几乎没有理由为了简单的数学计算而在数据帧上进行迭代你所追求的一切都可以用它来完成
要进一步细分:
转置数据帧
堆叠数据帧
组和聚合
您可以使用agg获取每列的特定聚合:
然后,如果您想将其填入
dfmaster
与其逐个添加到dfmaster,不如使用矢量化方法创建它:
此外,根据您的需要考虑检查{{CD1}}的输出:
相关问题 更多 >
编程相关推荐