小编Jun*_*mad的帖子

python中的分位数函数是否忽略NaN?

我有一个 dfAB

import pandas as pd
import random

A = [ random.randint(0,100) for i in range(10) ]
B = [ random.randint(0,100) for i in range(10) ]

dfAB = pd.DataFrame({ 'A': A, 'B': B })
dfAB
Run Code Online (Sandbox Code Playgroud)

我们可以采用分位数函数,因为我想知道列的第 75 个百分位数:

dfAB.quantile(0.75)
Run Code Online (Sandbox Code Playgroud)

但是现在说我在 dfAB 中放入了一些 NaN 并重新执行该函数,显然它是不同的:

dfAB.loc[5:8]=np.nan
dfAB.quantile(0.75)
Run Code Online (Sandbox Code Playgroud)

基本上,当我计算dfAB的平均值时,我通过skipna忽略Na,因为我不希望它们影响我的统计数据(我的代码中有很多,故意的,obv使它们为零没有帮助)

dfAB.mean(skipna=True)
Run Code Online (Sandbox Code Playgroud)

因此,我得到的是分位数函数是否/如何解决 NaN?

python quantile pandas

5
推荐指数
1
解决办法
5616
查看次数

python中的滚动函数忽略nans

https://pandas.pydata.org/pandas-docs/version/0.17.0/ generated/pandas.rolling_quantile.html

我不知道如何最好地忽略滚动百分位函数中的 NaN。有人知道吗?

seriestest = pd.Series([1, 5, 7, 2, 4, 6, 9, 3, 8, 10])
Run Code Online (Sandbox Code Playgroud)

并插入 nan

seriestest2 = pd.Series([1, 5, np.NaN, 2, 4, np.nan, 9, 3, 8, 10])
Run Code Online (Sandbox Code Playgroud)

现在,在第一个系列中,我使用以下方法获得了预期输出:

seriestest.rolling(window = 3).quantile(.5)
Run Code Online (Sandbox Code Playgroud)

但是,我希望做同样的事情并忽略 test2 系列上的 NaN。

seriestest2.rolling(window = 3).quantile(.5)
Run Code Online (Sandbox Code Playgroud)

给出:

0    NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN
6    NaN
7    NaN
8    8.0
9    8.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)

但我认为如果我们可以解析 a skipna=True,它会给出类似这样的东西,这对我不起作用:

0    NaN
1    NaN
2    5.0
3    2.0
4    4.0
5    4.0 …
Run Code Online (Sandbox Code Playgroud)

python pandas

3
推荐指数
1
解决办法
6797
查看次数

附加到python中的空列表时出错

我明白了:

'NoneType' object has no attribute 'append'
Run Code Online (Sandbox Code Playgroud)

我想从一个空列表开始:

Edate = []

但是Q1)我如何将其定义为将采用日期的列表?

我不确定,所以我输入一个timstamp让我开始:

Edate = [Timestamp('2018-01-01 00:00:00')]
Run Code Online (Sandbox Code Playgroud)

现在是一个1元素列表

现在,我想附加日期:

dates=

 1    2018-01-29
 2    2017-10-11
 3    2017-03-28
 4    2016-10-25
 5    2016-03-02
 6    2015-11-04
 7    2015-10-22
 8    2014-01-24
 9    2014-01-03
 10   2013-10-09
Run Code Online (Sandbox Code Playgroud)

但是在尝试这样做时,我遇到了上述错误,我不明白.谢谢

PS-我也想对数字做同样的事情:

entrynumbers = []

data=


0        NaN
1    -31.336
2    -36.012
3    -21.282
4    -41.859
5    -31.381
6    -30.789
7    -27.509

entrynumbers = entrynumbers.append(data)
Run Code Online (Sandbox Code Playgroud)

python append

0
推荐指数
1
解决办法
46
查看次数

标签 统计

python ×3

pandas ×2

append ×1

quantile ×1