【发布时间】:2018-04-15 15:09:06
【问题描述】:
我正在尝试获取一个表格,其中包含 A 和 B 的统计信息(平均值、变量、标准差等),给定 Y=1 和 Y=0. 例如:
鉴于此数据框:
df = pd.DataFrame({'A': [0, 0.91, np.NaN, 0.75, np.NaN, 1],
'B': [0.43, 1, 0.34, np.NaN, 0, 0.64],
'Y': [1, 0, 1, 1, 0, 1]
})
我正在计算统计数据:
for i in df:
print(i)
print("Mean Y1 " + " " + str(df[i][df["Y"]==1].mean()))
print("Mean Y0 " + " " + str(df[i][df["Y"]==0].mean()))
print("Var Y1 " + " " + str(np.var(df[i][df["Y"]==1])))
print("Var Y0 " + " " + str(np.var(df[i][df["Y"]==0])))
但是,我无法比较它们,所以我正在尝试使用如下统计数据创建一个表:
stats = pd.DataFrame({'Column names': ['A', 'B', 'Y']
'Mean Y1': [A_mean_given_Y==1, B_mean_given_Y==1, Z],
'Mean Y0': [A_mean_given_Y==0, B_mean_given_Y==0, Z],
'Var Y1': [A_var_given_Y==1, B_var_given_Y==1, Z],
'Var Y0': [A_var_given_Y==0, B_var_given_Y==0, Z]
})
# NOTE: Z is any number, as its value doesn't matter.
但是,df 不接受 .append 函数,因为它用于列表。并且在计算统计信息后转换数据框中的列表列表,效率非常低。那么,知道如何使用循环创建统计数据框吗?
【问题讨论】:
标签: python pandas dataframe statistics summary