小编Swe*_*ike的帖子

根据时间间隔使用 DatetimeIndex 对 Pandas 数据帧进行切片

我正在努力完成以下...

我得到了一个 Pandas 数据框,它有许多条目,用 DatetimeIndex 索引,看起来有点像这样:

bro_df.info()

<class 'bat.log_to_dataframe.LogToDataFrame'>
DatetimeIndex: 3596641 entries, 2017-12-14 13:52:01.633070 to 2018-01-03 09:59:53.108566
Data columns (total 20 columns):
conn_state        object
duration          timedelta64[ns]
history           object
id.orig_h         object
id.orig_p         int64
id.resp_h         object
id.resp_p         int64
local_orig        bool
local_resp        bool
missed_bytes      int64
orig_bytes        int64
orig_ip_bytes     int64
orig_pkts         int64
proto             object
resp_bytes        int64
resp_ip_bytes     int64
resp_pkts         int64
service           object
tunnel_parents    object
uid               object
dtypes: bool(2), int64(9), object(8), timedelta64[ns](1)
memory usage: 528.2+ MB
Run Code Online (Sandbox Code Playgroud)

我感兴趣的是获取该数据的一部分,该数据采用最后一个条目,在本例中为 2018-01-03 09:59:53.108566',然后从中减去一个小时。这应该给我最后几个小时的条目。

到目前为止我尝试做的是以下内容:

last_entry = bro_df.index[-1:]
first_entry = …
Run Code Online (Sandbox Code Playgroud)

datetime slice dataframe pandas

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

使用Centos 5上的非系统Openssl编译Python 2.7.12

我目前正试图在Centos 5主机上使用Openssl 1.0.2h编译Python 2.7.12.

原因是我需要Paramiko 2才能在这台主机上运行,​​但这不支持系统提供的OpenSSL版本,即0.9.8e-fips-rhel5 2008年7月1日.

我在这里找到了一些很好的提示和技巧,但它似乎没有用.我现在发布这个,希望有人会发现我做错了什么/错过了什么.

对于OpenSSL设置,我已完成以下操作:

OPENSSL_ROOT="$HOME/.build/openssl-1.0.1e"
cd /tmp
curl http://www.openssl.org/source/openssl-1.0.2h.tar.gz | tar zxvf -
cd openssl-1.0.2.h
mkdir -p "$OPENSSL_ROOT"
./config no-hw --prefix="$OPENSSL_ROOT" --openssldir=...
make install
Run Code Online (Sandbox Code Playgroud)

然后因为我不想用2.7.12替换系统安装的Python我已经完成了以下操作:

首先,我将/ usr/local/lib添加到/etc/ld.so.conf并运行ldconfig.

之后我跑了:

cd /tmp
wget http://python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
tar xf Python-2.7.12.tar.xz
cd Python-2.7.12
./configure CPPFLAGS="-I$OPENSSL_ROOT/include"  LDFLAGS="-L$OPENSSL_ROOT/lib"  --prefix=/usr/local --enable-unicode=ucs4 --enable-shared
make && make altinstall
Run Code Online (Sandbox Code Playgroud)

这是我认为我已经针对新版本的OpenSSL进行编译但是没有,正如您从输出中看到的那样:

[root@an-host openssl-1.0.2h]# python2.7 -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
Run Code Online (Sandbox Code Playgroud)

而且我确信我正在运行新编译的版本,因为这是在这里回应:

[root@an-host openssl-1.0.2h]# python2.7
Python 2.7.12 (default, Aug  1 2016, 11:46:42) 
[GCC 4.1.2 20080704 …
Run Code Online (Sandbox Code Playgroud)

python linux openssl centos5 compilation

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

使用 BeautifulSoup 提取值列表

我目前正在尝试使用 Ubuntu 的RSS feed自动解析 Ubuntu 的安全声明。我正在使用 feedparser,所以效果很好。我可以获得咨询的标题 (feed.title)、相关链接 (feed.link) 等等。

我现在想做的是进一步解析此输出,以便获取受影响的版本并将其存储以供进一步参考。

以下代码的作用是获取提要并为解析做好准备。它还使用 BeautifulSoup 来解析 feed.summary,这似乎是包含我想要的信息的“占位符”。

import feedparser
from bs4 import BeautifulSoup

ubuntu_url = 'https://usn.ubuntu.com/rss.xml'

feed = feedparser.parse(ubuntu_url)

for post in feed.entries:
    soup = BeautifulSoup(post.summary, 'html.parser')
Run Code Online (Sandbox Code Playgroud)

如果我添加“ print(soup.prettify())”,我可以在本节中看到我想要的信息(这是包含其他几个列表元素的更大输出的一部分):

<p>A security issue affects these releases of Ubuntu and its derivatives:</p>

<ul>
<li>Ubuntu 18.04 LTS</li>
<li>Ubuntu 17.10</li>
<li>Ubuntu 16.04 LTS</li>
<li>Ubuntu 14.04 LTS</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

当然,这个列表会有不同的长度,从只有一个版本向上。正如这个不同的例子所示:

<p>A security issue affects these releases of Ubuntu and its derivatives:</p>

<ul>
<li>Ubuntu 18.04 LTS</li>
</ul> …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup html-parsing

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

如何从 csv 文件生成大叶热图?

我目前正在尝试使用 Python 2.7 中的 Folium 在 Leaflet.js 中生成热图。我想我可能会错误地获取 long/lat 语法以正确呈现它。

csv 文件具有以下布局:名称、经度、纬度

例子:

incident1,-1.44986889,-48.48197937
incident2,-1.37189305,-48.44008189
Run Code Online (Sandbox Code Playgroud)

我写的代码是这样的:

import folium
import csv
from folium import plugins

heatmap_map = folium.Map(location=[51.67109, -1.28278], zoom_start=2)

with open('/tmp/geolocation.csv','rb') as f:
    reader = csv.reader(f)
    for row in reader:
        data = ([row[1]], [row[2]])
        hm = plugins.HeatMap(data)
        heatmap_map.add_children(hm)
f.close()

heatmap_map.save("/tmp/heatmap.html")
Run Code Online (Sandbox Code Playgroud)

程序运行,保存文件,但当我在浏览器中加载它时,我看不到任何热图。我已经验证我可以创建位置标记,因此它可以按预期加载地图。

恐怕我对 Leaflet.js 的了解不够,无法对生成的 html 文件中的代码进行故障排除。

任何人都可以在这里帮助我并显示数据变量中可能有什么问题,或者可能是遍历我的 csv 文件以生成必要的热图的更好方法吗?

提前致谢

python csv folium

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

docker-compose在以普通用户身份运行时给出错误"ImportError:没有名为ssl_match_hostname的模块"

我已经用'pip2.7 install docker-compose'安装了docker-compose但是当我尝试将它作为'普通'用户运行时,我收到以下错误消息:

mike@hugin:~/Tobedeleted$ docker-compose  -v
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 7, in <module>
    from compose.cli.main import main
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 17, in <module>
    from . import errors
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/errors.py", line 10, in <module>
    from docker.errors import APIError
  File "/usr/local/lib/python2.7/dist-packages/docker/__init__.py", line 2, in <module>
    from .api import APIClient
  File "/usr/local/lib/python2.7/dist-packages/docker/api/__init__.py", line 2, in <module>
    from .client import APIClient
  File "/usr/local/lib/python2.7/dist-packages/docker/api/client.py", line 11, in <module>
    from .build import BuildApiMixin
  File "/usr/local/lib/python2.7/dist-packages/docker/api/build.py", line 9, in <module>
    from .. import …
Run Code Online (Sandbox Code Playgroud)

python pip docker docker-compose

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