当前位置: 首页 > 知识库问答 >
问题:

CDF x值为50%,平均值不显示相同的数字

姚浩歌
2023-03-14

我有一个数据框,我创建了days列的CDF:

...
#create DF from SQL
df = pd.read_sql_query(query, conn)

days = df['days'].dropna()

#create CDF definition
def ecdf(data):
    n = len(data)
    x = np.sort(data)
    y = np.arange(1.0, n+1) / n
    return x, y

#unpack x and y
x, y = ecdf(days)
sns.set()

#plot CDF
ax = plt.plot(x, y, marker='.', linestyle='none') 

#Overlay quartiles
percentiles= np.array([25,50,75])
x_p = np.percentile(days, percentiles)
y_p = percentiles/100.0
ax = plt.plot(x_p, y_p, marker='D', color='red', linestyle='none') # Overlay percentiles

#get current axes and add annotation and quartile points
ax=plt.gca()
for x,y in zip(x_p, y_p):                                        
    ax.annotate('%s' % x, xy=(x,y), xytext=(15,0), textcoords='offset points')

在50%标记处,CDF覆盖图中的数据点显示平均值为120,但是print(np.mean(df['days\u to\u engineering'])显示平均值为154。

为什么会有差异?

打印(df['days'].dropna())

389
350
130
344
392
92
51
28
309
357
64
380
332
109
284
105
50
66
156
116
75
315
155
34
155
241
320
50
97
41
274
99
133
95
306
62
187
56
110
338
102
285
386
231
238
145
216
148
105
368
176
155
106
107
36
16
28
6
322
95
122
82
64
35
72
214
192
91
117
277
101
159
96
325
79
154
314
142
147
138
48
50
178
146
224
282
141
75
151
93
135
82
125
111
49
113
165
19
118
105
92
133
77
54
72
34

共有1个答案

耿玄裳
2023-03-14

你在比较中位数和平均值。这可以归结为以下几点:

a = np.array([1, 1, 2, 4])

ecdf只是第二个元素(1)。平均值为(4 2 1)/4==2

 类似资料:
  • 问题内容: 我有一个大小为N *M的矩阵,我想找到每一行的平均值。值是从1到5,并且没有任何值的条目设置为0。但是,当我想使用以下方法查找均值时,它给了我错误的均值,因为它还计算了具有值的条目0。 如何获得仅非零值的均值? 问题答案: 获取每一行的非零计数,并将其用于平均每一行的总和。因此,实现看起来像这样- 如果您使用的是较旧版本的NumPy,则可以使用count的float转换来替换,例如,

  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:

  • 我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是:

  • 我想返回一个函数,它给出所有或更多标记的平均值。当我运行代码时,它总是返回一个空列表。 以下是我尝试过的: 请帮我找出代码中的问题,输出应该是。

  • 问题内容: 我正在使用Apache Derby作为嵌入式数据库。 DatabaseCheck.java 此类用于创建表。 创建表之后,我正在另一个类中使用方法插入数据。 由于以下错误,我从未设法插入任何内容 为什么是这样? 问题答案: 您的查询不正确,当您使用该类型的语法时,假设所有文件都必须具有值,并且由于您具有auto_incremented列,因此未包含它会使它无效。 因此,要更正语法,您必

  • 我是新来的。任何帮助都将不胜感激 这是我的原始数据: 我想得到的是: 1创建一个新的列调用平均值,以计算每个提要的平均市值。 2求加权平均数。 这是我当前的代码,我得到NaN: 对于加权平均代码: 我得到了一个错误: AttributeError:“Series”对象没有属性“value”