小编Jej*_*ort的帖子

意思是,nanmean和警告:空切片的意思

假设我构造了两个numpy数组:

a = np.array([np.NaN, np.NaN])
b = np.array([np.NaN, np.NaN, 3])
Run Code Online (Sandbox Code Playgroud)

现在我发现两者的np.mean回报和:nanab

>>> np.mean(a)
nan
>>> np.mean(b)
nan
Run Code Online (Sandbox Code Playgroud)

自numpy 1.8(2016年4月20日发布)以来,我们一直很幸运nan,忽略了nan价值观:

>>> np.nanmean(b)
3.0
Run Code Online (Sandbox Code Playgroud)

然而,当阵列无关,但 nanmean价值,它提出了一个警告:

>>> np.nanmean(a)
nan
C:\python-3.4.3\lib\site-packages\numpy\lib\nanfunctions.py:598: RuntimeWarning: Mean of empty slice
  warnings.warn("Mean of empty slice", RuntimeWarning)
Run Code Online (Sandbox Code Playgroud)

我不喜欢压制警告; 是否有更好的功能,我可以用来获得np.mean没有警告的行为?

python warnings numpy

55
推荐指数
2
解决办法
5万
查看次数

使用该列python的平均值减去dataframe中的每一列

我正在寻找一种方法来查找python数据帧中每列的方法,并用该列的平均值减去该列.假设,

df = pd.DataFrame({'a': [1.5, 2.5], 'b': [0.25, 2.75], 'c': [1.25, 0.75]})
Run Code Online (Sandbox Code Playgroud)

我想找到每列的平均值,它们将分别返回(2,1.5,1)和减去1,2,3列中的值.

这会给, a

有人可以帮我这么做吗?

谢谢

python mean centering python-2.7

12
推荐指数
1
解决办法
8504
查看次数

仅标记DataFrame中满足条件的第一行

我有以下DataFrame df,可以如下创建:

date_today = datetime.now().date()
days = pd.date_range(date_today, date_today + timedelta(19), freq='D')
x = np.arange(0,2*np.pi,0.1*np.pi)   # start,stop,step
y = np.sin(x)
df = pd.DataFrame({'dates': days, 'vals': y, 'is_hit': abs(y)>0.9})
df = df.set_index('dates')
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

            is_hit          vals
dates                           
2019-03-27   False  0.000000e+00
2019-03-28   False  3.090170e-01
2019-03-29   False  5.877853e-01
2019-03-30   False  8.090170e-01
2019-03-31    True  9.510565e-01
2019-04-01    True  1.000000e+00
2019-04-02    True  9.510565e-01
2019-04-03   False  8.090170e-01
2019-04-04   False  5.877853e-01
2019-04-05   False  3.090170e-01
2019-04-06   False  1.224647e-16
2019-04-07   False -3.090170e-01
2019-04-08   False -5.877853e-01
2019-04-09   False -8.090170e-01
2019-04-10    True …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

9
推荐指数
1
解决办法
469
查看次数

使用pylab或matplotlib指定savefig的路径

在matplotlib或pylab中调用函数savefig时,我正在努力寻找指定保存路径(或存储库)的正确方法.

我尝试了几种语法,但每次python控制台都会返回:

FileNotFoundError:[Errno 2]没有这样的文件或目录:'../ MyDocs/resources/frames/MyImage.png'

目前,我写了以下内容:

pylab.savefig('../MyDocs/resource/frames/MyImage.png')
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?

提前致谢!

python plot matplotlib

8
推荐指数
2
解决办法
2万
查看次数

根据列值对带有MultiIndex的pandas DataFrame进行排序

在控制台中打印后,我有一个MultiIndex的DataFrame看起来像这样:

                             value  indA  indB
           scenarioId group                        
2015-04-13    1       A           -54.0   1.0   1.0
                      B          -160.0   1.0   1.0
                      C           -15.0   0.0   1.0
              2       A           -83.0   1.0   1.0
              3       A           -80.0   2.0   2.0
              4       A          -270.0   2.0   2.0
2015-04-14    1       A           -56.0   1.0   1.0
                      B            -1.0   1.0   1.0
                      C           -60.0   0.0   1.0
              2       A           -32.0   1.0   1.0
              3       A           -91.0   2.0   2.0
              4       A           -17.0   2.0   2.0

我在初始数据集上使用groupbysum函数后得到了它.

我想保持相同的格式,但根据value列进行排序.我已经尽力使用排序函数来做到这一点,但我认为拥有没有名称的MultiIndex的第一个索引(对于日期)这一事实是一个问题.

基本上,输出应如下所示:

                             value  indA  indB
           scenarioId group                        
2015-04-13   1 …

python multi-index dataframe pandas

7
推荐指数
1
解决办法
2112
查看次数

自动解决rm无法删除路径:设备或资源繁忙错误

/path/to/dir我正在尝试使用该命令删除目录rm -rf。不幸的是我得到了错误

rm: cannot remove '/path/to/dir/.nfsdda293a660f276ca0000000a': Device or resource busy
Run Code Online (Sandbox Code Playgroud)

经过一番研究后,我意识到我需要找到哪个进程正在使用该文件,然后才能删除它:

lsof /path/to/dir/.nfsdda293a660f276ca0000000a
Run Code Online (Sandbox Code Playgroud)

这将返回与进程关联的 PID:

COMMAND   PID
python    28594
Run Code Online (Sandbox Code Playgroud)

然后我杀死 PID 并再次尝试删除,但我仍然收到最初的错误。

如何强制/path/to/dir脚本内的脚本自动删除,无需人工干预?

unix linux bash rm lsof

6
推荐指数
1
解决办法
4万
查看次数

选择 KDB 中第二大或最小的数字

有没有一种简单的方法可以找到表的一组列中第二大或第二小的数字?

我可以使用select min/轻松找到最大或最小的值max (a, b, c, d) by i from t

然而,我似乎无法找到一种简单的方法来找到组中第二(或第三)最大或最小的。

谢谢

max min kdb

4
推荐指数
1
解决办法
2360
查看次数

在 Linux 中获取给定日期的前一个工作日的函数

给定一个输入日期,我想编写一个 bash 函数来输出前一个工作日。\xc2\xa0\nBy\xc2\xa0this I\xc2\xa0mean 前一个工作日周一到周五);\n我不\'不需要考虑假期。\xc2\xa0\n因此,例如,给定“Jan\xc2\xa02,\xc2\xa02018”,结果应该是“Jan\xc2\xa01,2018”\n(即使这是一个假期),\n但给定“Jan\xc2\xa01,\xc2\xa02018”,结果应该是“Dec\xc2\xa029,\xc2\xa02017”\n(因为 Dec\xc2\xa030 和 \xc2\ xa031 是周六和周日)。\xc2\xa0\n我不需要任何特定的格式;\n只是人类可读且date\xc2\xa0-d.

\n\n

我已尝试以下操作,但似乎没有正确考虑输入日期:

\n\n
function get_previous_busday()\n{\n    DAY_OF_WEEK=`$1 +%w`\n    if [ $DAY_OF_WEEK -eq 0 ] ; then\n        LOOKBACK=-2\n    elif [ $DAY_OF_WEEK -eq 1 ] ; then\n        LOOKBACK=-3\n    else\n        LOOKBACK=-1\n    fi\n    PREVDATE=date -d "$1 $LOOKBACK day"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我今天想应用它:

\n\n
PREVDATE=$(get_previous_busday $(date)) \necho $PREVDATE\n
Run Code Online (Sandbox Code Playgroud)\n\n

昨天:

\n\n
PREVDATE=$(get_previous_busday (date -d "$(date) -1 day")) \necho $PREVDATE\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它不起作用:

\n\n\n\n
function get_previous_busday()\n{\n    DAY_OF_WEEK=`$1 +%w`\n    if [ $DAY_OF_WEEK -eq 0 ] ; then\n …
Run Code Online (Sandbox Code Playgroud)

linux bash date function

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

KDB中是否有一个等于“ inter”的“ outer”或“ exclusive or”运算符?

假设我有以下两个列表:

 x : `a`b`c`d;
 y : `a`b`e`f;
Run Code Online (Sandbox Code Playgroud)

对于交叉路口,有inter运营商:

q)x inter y
`a`b
Run Code Online (Sandbox Code Playgroud)

是否有类似的运算符来做EXCLUSIVE OR这样的事情,我会得到:

q)x outer y
`c`d`e`f
Run Code Online (Sandbox Code Playgroud)

list xor kdb

3
推荐指数
2
解决办法
151
查看次数

Pandas Dataframe Mutli索引按级别和列值排序

我有一个熊猫数据框,看起来像这样:

                         value
           Id              
2014-03-13 1          -3
           2          -6
           3          -3.2
           4          -3.1
           5          -5
2014-03-14 1          -3.4
           2          -6.2
           3          -3.2
           4          -3.2
           5          -5.9
Run Code Online (Sandbox Code Playgroud)

这基本上是一个具有两个级别的多索引的groupby对象。

我想根据该value列以升序对其进行排序,但保持0级(日期)不变,以便结果应如下所示:

                         value
           Id              
2014-03-13 2          -6
           5          -5
           3          -3.2
           4          -3.1
           1          -3
2014-03-14 2          -6.2
           5          -5.9
           1          -3.4
           3          -3.2
           4          -3.2
Run Code Online (Sandbox Code Playgroud)

这是生成初始数据的代码:

import pandas as pd

dates = [pd.to_datetime('2014-03-13', format='%Y-%m-%d'), pd.to_datetime('2014-03-13', format='%Y-%m-%d'), pd.to_datetime('2014-03-13', format='%Y-%m-%d'), pd.to_datetime('2014-03-13', format='%Y-%m-%d'),
         pd.to_datetime('2014-03-13', format='%Y-%m-%d'),pd.to_datetime('2014-03-14', format='%Y-%m-%d'), pd.to_datetime('2014-03-14', format='%Y-%m-%d'), pd.to_datetime('2014-03-14', format='%Y-%m-%d'), 
         pd.to_datetime('2014-03-14', format='%Y-%m-%d'), pd.to_datetime('2014-03-14', format='%Y-%m-%d')]

values …
Run Code Online (Sandbox Code Playgroud)

python sorting multi-index dataframe pandas

2
推荐指数
1
解决办法
2003
查看次数

标签 统计

python ×6

dataframe ×3

pandas ×3

bash ×2

kdb ×2

linux ×2

multi-index ×2

centering ×1

date ×1

function ×1

list ×1

lsof ×1

matplotlib ×1

max ×1

mean ×1

min ×1

numpy ×1

plot ×1

python-2.7 ×1

rm ×1

sorting ×1

unix ×1

warnings ×1

xor ×1