计算每个 Dataframe 列的平均值
calculationg the mean from each Dataframe column
我必须编写一个函数 (column_means),计算 Dataframe 中每一列的 均值 并在最后给我一个均值列表。我不允许使用均值函数 .mean(),所以我正在实现均值的一般公式:sum(x_i)/元素数。
这是我的代码:
df = pd.DataFrame({'a':[1,2,3], 'b': [4,5,6]})
def column_means(df):
means = []
for i,n in zip(df.columns, df.shape[0]):
means [n] = sum(df[i])/ df.shape[0]
return means
它没有按预期工作。你能帮帮我,告诉我我的错误是什么吗?
提前致谢。
你想要每列的平均值吗?如果它们的长度不完全相同,您必须小心:
import pandas as pd
df = pd.DataFrame({'a':[1,2,3], 'b': [4,5,6]})
def column_means(df):
means = []
for i,n in enumerate(df.columns):
means.append(sum(df[n])/len(df[n]))
return means
print(column_means(df))
也可以使用pd DataFrame的mean方法
df.mean()
您正在 zip 函数中迭代 int,因为 df.shape[0]
返回单个整数而不是可迭代数据类型。
所以你可以简单地做如下操作:
def column_means(df):
means = []
for i in df.columns:
means.append(sum(df[i]) / df.shape[0])
return means
如果你想让 mean 只是一个整数而不是浮点数,你可以只做 sum(df[i]) // df.shape[0]
我希望这能回答你的问题。
将第一个 df.shape[0]
更改为 df.index
和赋值行。
def column_means(df):
means = []
for i,n in zip(df.columns, df.index):
means.append(sum(df[i])/ df.shape[0])
return means
我必须编写一个函数 (column_means),计算 Dataframe 中每一列的 均值 并在最后给我一个均值列表。我不允许使用均值函数 .mean(),所以我正在实现均值的一般公式:sum(x_i)/元素数。
这是我的代码:
df = pd.DataFrame({'a':[1,2,3], 'b': [4,5,6]})
def column_means(df):
means = []
for i,n in zip(df.columns, df.shape[0]):
means [n] = sum(df[i])/ df.shape[0]
return means
它没有按预期工作。你能帮帮我,告诉我我的错误是什么吗?
提前致谢。
你想要每列的平均值吗?如果它们的长度不完全相同,您必须小心:
import pandas as pd
df = pd.DataFrame({'a':[1,2,3], 'b': [4,5,6]})
def column_means(df):
means = []
for i,n in enumerate(df.columns):
means.append(sum(df[n])/len(df[n]))
return means
print(column_means(df))
也可以使用pd DataFrame的mean方法
df.mean()
您正在 zip 函数中迭代 int,因为 df.shape[0]
返回单个整数而不是可迭代数据类型。
所以你可以简单地做如下操作:
def column_means(df):
means = []
for i in df.columns:
means.append(sum(df[i]) / df.shape[0])
return means
如果你想让 mean 只是一个整数而不是浮点数,你可以只做 sum(df[i]) // df.shape[0]
我希望这能回答你的问题。
将第一个 df.shape[0]
更改为 df.index
和赋值行。
def column_means(df):
means = []
for i,n in zip(df.columns, df.index):
means.append(sum(df[i])/ df.shape[0])
return means