小编Vla*_*nov的帖子

通过ssh隧道访问远程数据库(Python 3)

我什至不理解(即使在阅读了几篇有关ssh tunelling的文章之后),CLI ssh命令在此脚本中的什么参数也是如此。基本上,我必须连接到某些服务器(我称其为“ ssh_tunnel_host:22”),而不是使用此隧道连接到db_host。

with SSHTunnelForwarder(
    ('ssh_tunnel_host', 22),
    ssh_username="ssh_username",
    ssh_pkey="/somepath/id_rsa",
    local_bind_address=('0.0.0.0', 1234),
    remote_bind_address=('127.0.0.1', 3306)
) as tunnel:
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect('127.0.0.1', 1234)
    db_connection = pymysql.connect(host=db_host, port=3306, db='mysql', user='user',
                                    password='password', charset='utf8mb4')
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释:

  1. 什么是local_bind_address-是我的本地地址还是ssh_tunnel_host本地地址?在哪里可以学习IP和端口?
  2. 取决于上一个问题-什么是remote_bind_address-它是ssh_tunnel_host还是db_host的地址?我在哪里可以学习这些IP和端口?
  3. 我应该在哪里连接client.connect()?本地还是远程绑定?

(我确实尝试阅读文档,但仍然很混乱)

python ssh remote-access ssh-tunnel

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

Pandas concat 结果与 NaN 不一致

我有一个数据框,用于将机器学习算法与分类和数值特征相匹配。因此,我分割了这个 df 并使用 one-hot 编码转换了分类特征,现在我有了 numpy 矩阵,我必须将其连接回带有数字特征的 df ,因此数字数据帧的第一行将获得第一个矩阵行作为新特征。

给出谷歌搜索“join dataframes”命令的文档和结果

pd.concat([X_numerical, pd.DataFrame(numpy_matrix)], axis=1)
Run Code Online (Sandbox Code Playgroud)

但我得到了这个 - 就像“axis”参数被忽略(我清理了 np.nan 中的所有原始数据):

结果示例

我究竟做错了什么?我期望得到没有这些 NaN 的结果数据帧,其中 df 行与矩阵行一一连接

python concatenation dataframe pandas

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