小编zeg*_*jan的帖子

如何用pandas DataFrame中的先前值替换NaN?

假设我有一个带有NaNs 的DataFrame :

>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
>>> df
    0   1   2
0   1   2   3
1   4 NaN NaN
2 NaN NaN   9
Run Code Online (Sandbox Code Playgroud)

我需要做的是用它上面的同一列中NaN的第一个非NaN值替换每个值.假设第一行永远不会包含a NaN.因此,对于前面的示例,结果将是

   0  1  2
0  1  2  3
1  4  2  3
2  4  2  9
Run Code Online (Sandbox Code Playgroud)

我可以逐个循环遍历整个DataFrame,逐个元素并直接设置值,但是有一种简单(最佳无循环)的方法来实现这一目标吗?

python nan dataframe python-3.x pandas

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

PyCharm无法识别在开发模式下安装的模块

我在PyCharm 3.4.1专业版中有两个纯python项目.第一个,我们称之为p(像包),结构为setuptools包(即使用setup.py,所有要求等,但它不会上传到pypi或任何其他在线存储库).第二个,我们称之为s(如脚本),只是一个python脚本和两个模块.

Project s(在PyCharm中)被配置为使用专用的virtualenv,让我们称之为venv.

我遇到的问题如下:当我像这样安装项目(包)pvenv:

$ source /path/to/venv/bin/activate
(venv)$ cd /path/to/p
(venv)$ python3 setup.py develop
Run Code Online (Sandbox Code Playgroud)

在项目中的PyCharm中s,import p语句是错误的,消息没有名为p的模块.但是,当我运行脚本时s,一切都很好,唯一的问题是PyCharm IDE抱怨无法找到模块.我可以忍受这个,但它很烦人......

为什么会这样?它是PyCharm的东西还是包装相关的东西?见下面的新闻.


项目/包p具有以下结构:

p/
|
+- p/
|  |
|  +- __init__.py
|  +- other subpackages, modules, etc.
+- setup.py
+- README, DESCRIPTION, setup.cfg, etc.
Run Code Online (Sandbox Code Playgroud)

当我将PyCharm项目配置为p自己的virtualenv并在开发模式下安装时,一切正常.


新闻

PyCharm 5.0.4中仍然存在此问题.但是,我成功地解决了它.

出于某些原因,我不得不从pypi安装另一个包.我通过PyCharm进入文件 - >设置 - >项目: - >项目解释器,点击绿色+ …

python setuptools pycharm python-3.x

32
推荐指数
4
解决办法
3万
查看次数

Python:包含单个元素的zip列表

我有一些元素的列表,例如[1, 2, 3, 4],单个对象,例如'a'.我想生成一个元组列表,列表元素位于第一个位置,单个对象位于第二个位置:[(1, 'a'), (2, 'a'), (3, 'a'), (4, 'a')].

我可以这样做zip:

def zip_with_scalar(l, o): # l - the list; o - the object
    return list(zip(l, [o] * len(l)))
Run Code Online (Sandbox Code Playgroud)

然而,这给了我一种创造和不必要的重复元素列表的感觉.

另一种可能性是

def zip_with_scalar(l, o):
    return [(i, o) for i in l]
Run Code Online (Sandbox Code Playgroud)

这确实非常干净和pythonic,但在这里我做"手动"整个事情.在Haskell中,我会做类似的事情

zipWithScalar l o = zip l $ repeat o
Run Code Online (Sandbox Code Playgroud)

是否有任何内置函数或技巧,无论是用于标量的压缩还是用于使我能够使用普通zip的东西,即排序无限列表?

python list python-3.x

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

构建USB外围设备

我想从我的电脑通过USB控制RC模型.我不需要真正的无线电控制,因此通过电缆直接控制伺服系统是足够的(是的,模型和控制单元之间会有电缆).我想我会构建一些基于微控制器的设备,它将通过USB连接到计算机,并且伺服器将连接到该设备.

我要求提示我应该从哪里开始.我知道伺服系统是如何控制的,我最终应该如何编程微控制器以控制伺服系统,但我真正不太了解的是USB通信既不在设备端也不在计算机端(将是Linux).

我想在C中进行编程(可能是微控制器的汇编程序).

谢谢你的每一个提示.

c linux usb microcontroller assembly

7
推荐指数
2
解决办法
414
查看次数

Dart中具有已定义签名的函数列表

在Dart中,是否可以拥有一个具有明确定义签名的函数列表?我正在寻找类似的东西

List<(int, int) -> int> listOfFunctions;
Run Code Online (Sandbox Code Playgroud)

这当然是错的.

我可以

List<Function> listOfFunctions;
Run Code Online (Sandbox Code Playgroud)

但后来我不知道签名.

谢谢你的任何提示.

dart

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

PHP:文件写权限

因为这个事我已经头疼好久了……

\n\n

我正在尝试在我的虚拟服务器(CentOS 7、apache http 服务器、php 5.4.3)上安装 MyBB 论坛,但遇到了文件权限问题。MyBB 需要两个文件可写,其中一个是config.php,第二个是settings.php,它们都在目录 中inc

\n\n

我将两个文件的权限都设置为 666。我编写了一个简单的测试 php 页面,它模仿 MyBB 测试写入能力的方式:

\n\n
<?php\necho(\'config: \');\n$configwritable = @fopen(\'forum/inc/config.php\', \'w\');\nif ($configwritable) {\n        echo(\'yes\');\n} else {\n        echo(\'no\');\n}\necho(\'<br/>\');\necho(\'settings: \');\n$configwritable = @fopen(\'forum/inc/settings.php\', \'w\');\nif ($configwritable) {\n    echo(\'yes\');\n} else {\n    echo(\'no\');\n}\n?>\n
Run Code Online (Sandbox Code Playgroud)\n\n

页面输出为

\n\n
config: no\nsettings: yes\n
Run Code Online (Sandbox Code Playgroud)\n\n

但如果我列出文件,它们会像这样显示

\n\n
root@localhost# ls -l forum/inc/config.php forum/inc/settings.php \n-rw-rw-rw-. 1 krkavec krkavec 0  2.\xc2\xa0\xc5\x99\xc3\xadj 22.49 forum/inc/config.php\n-rw-rw-rw-. 1 krkavec krkavec 0  2.\xc2\xa0\xc5\x99\xc3\xadj 22.51 forum/inc/settings.php\n
Run Code Online (Sandbox Code Playgroud)\n\n

这怎么可能?这两个文件属于同一用户,同一组,具有相同的大小(零),位于同一目录中,具有相同的权限,具有几乎相同的修改时间(相差两分钟)以及几乎所有其他内容,除了他们的名字是相同的。

\n\n

为了让事情变得更奇怪,我尝试再次删除和创建文件,请观看:

\n\n …

php file-permissions

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

如何在numpy中堆叠数组和标量?

我有一个numpy向量(1-D数组)或标量列表(即只是数字).所有的载体都有相同的长度,但我不知道那是什么.我需要vstack所有元素来创建一个矩阵(2-D数组),使得标量被视为在每个位置具有标量的向量.

示例是最佳描述:

情况1:

>>> np.vstack([np.array([1, 2, 3]), np.array([3, 2, 1])])
array([[1, 2, 3],
       [3, 2, 1]])
Run Code Online (Sandbox Code Playgroud)

案例2:

>>> np.vstack([1, 2])
array([[1],
       [2]])
Run Code Online (Sandbox Code Playgroud)

案例3:

>>> np.vstack([np.array([1, 2, 3]), 0, np.array([3, 2, 1])])
np.array([[1, 2, 3],
          [0, 0, 0],
          [3, 2, 1]])
Run Code Online (Sandbox Code Playgroud)

案例1和案例2开箱即用.但是,在情况3中,它并不像vstack需要所有元素都是相同长度的数组.

实现这一目标是否有一些不错的方式(最好是单线程)?

python numpy

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

为什么numpy.broadcast"转置"vstack和类似函数的结果?

注意:

In [1]: import numpy as np
In [2]: x = np.array([1, 2, 3])
In [3]: np.vstack([x, x])
Out[3]: 
array([[1, 2, 3],
       [1, 2, 3]])

In [4]: np.vstack(np.broadcast(x, x))
Out[4]: 
array([[1, 1],
       [2, 2],
       [3, 3]])
Run Code Online (Sandbox Code Playgroud)

类似地对于column_stackrow_stack(hstack在这种情况下表现不同但在与广播一起使用时也有所不同).为什么?

我追求的是背后的逻辑,而不是找到一种"修复"这种行为的方式(我对它很好,它只是不直观).

python arrays numpy numpy-broadcasting

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

如何编写 dockerfile 来执行简单的 bash 脚本?

我正在尝试编写一个 docker 镜像来通过 netcat 运行一个简单的网络服务器。

所以我在我的 docker build 文件夹中有:

Dockerfile
index.html
run_netcat_webserver.sh
Run Code Online (Sandbox Code Playgroud)

run_netcat_webserver.sh非常简单,而且工作正常:

Dockerfile
index.html
run_netcat_webserver.sh
Run Code Online (Sandbox Code Playgroud)

这是我的天真的 Dockerfile,当然它不起作用:

FROM ubuntu:14.04

CMD run_netcat_webserver.sh
Run Code Online (Sandbox Code Playgroud)

我应该如何继续在 docker 容器中进行这项工作?

docker dockerfile

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

Python:通过投影值相等将列表分组到子列表中

是否有一种很好的pythonic方法可以将列表分组到列表列表中,其中每个内部列表只包含那些具有相同投影的元素,由用户定义为函数?

例:

>>> x = [0, 1, 2, 3, 4, 5, 6, 7]
>>> groupby(x, projection=lambda e: e % 3)
[[0, 3, 6], [1, 4, 7], [2, 5]]
Run Code Online (Sandbox Code Playgroud)

我不关心投影本身,只是如果它对某些元素是相等的,那么它们必须最终存在于同一个子列表中.

我基本上是在寻找与haskell函数相当的python GHC.Exts.groupWith:

Prelude> import GHC.Exts
Prelude GHC.Exts> groupWith (`mod` 3) [0..7]
[[0,3,6],[1,4,7],[2,5]]
Run Code Online (Sandbox Code Playgroud)

python grouping

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