假设我构造了两个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数据帧中每列的方法,并用该列的平均值减去该列.假设,
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
有人可以帮我这么做吗?
谢谢
我有以下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) 在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)
有人知道怎么做吗?
提前致谢!
在控制台中打印后,我有一个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
我在初始数据集上使用groupby和sum函数后得到了它.
我想保持相同的格式,但根据value列进行排序.我已经尽力使用排序函数来做到这一点,但我认为拥有没有名称的MultiIndex的第一个索引(对于日期)这一事实是一个问题.
基本上,输出应如下所示:
value indA indB
scenarioId group
2015-04-13 1 … /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脚本内的脚本自动删除,无需人工干预?
有没有一种简单的方法可以找到表的一组列中第二大或第二小的数字?
我可以使用select min/轻松找到最大或最小的值max (a, b, c, d) by i from t。
然而,我似乎无法找到一种简单的方法来找到组中第二(或第三)最大或最小的。
谢谢
给定一个输入日期,我想编写一个 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\nfunction 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}\nRun Code Online (Sandbox Code Playgroud)\n\n我今天想应用它:
\n\nPREVDATE=$(get_previous_busday $(date)) \necho $PREVDATE\nRun Code Online (Sandbox Code Playgroud)\n\n昨天:
\n\nPREVDATE=$(get_previous_busday (date -d "$(date) -1 day")) \necho $PREVDATE\nRun Code Online (Sandbox Code Playgroud)\n\n但它不起作用:
\n\n\n\nfunction 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) 假设我有以下两个列表:
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)
?
我有一个熊猫数据框,看起来像这样:
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)