经过搜索,我不认为这是一个重复,但如果它是请让我知道。在
我现在有一个数据帧,有很多行和变量。我想创建一个单独的数据帧的单行,这是每个变量的平均值。我这样做是为了能很容易地把它画成图表。我不知道为什么我的语法不起作用。在
这是针对一个特定的变量。如果我能让它工作,那么我可以用一个循环将它扩展到所有列。在
avg = pd.DataFrame(columns=original.columns.values)
avg['max_yds'].loc[0] = original['max_yds'].mean(axis=0)
在我看来,第一行创建了一个名为“avg”的数据帧,它是空的,包含了原始数据的所有列。这似乎和预期的一样有效。对于第二行,我希望它将变量“max_yds”的第一行设置为“avg”中变量“max_yds”的平均值。相反,我得到:Empty DataFrame
谢谢!在
试试看
如果要计算所有列的平均值,为什么不使用
^{pr2}$编辑:
您最初的解决方案的问题是您使用了一种“chained indexing”,这很糟糕。在
您可以在每列中为序列添加值,但DataFrame的索引仍然为空。在
实际上,如果你加上
之后
,您的代码也可以工作。在
或者您可以在开始时指定索引,这也可以解决您的问题。在
但是,不建议这样做。在
您也可以使用loc:
或者,您可以使用
pandas.DataFrame.describe
方法轻松检索统计信息。在因此,如果你想要一个系列的平均值列:
avg = original.describe().loc['mean']
如果需要预期的输出数据帧:
avg = pd.DataFrame(index = [0], original.describe().loc['mean']).transpose()
相关问题 更多 >
编程相关推荐