小编Vin*_*ara的帖子

如何过滤 pandas DataFrame 中包含空列表的行?

我有一个如下所示的数据框:

A    B    C    D
foo  foo  foo  ['list_value']
bar  bar  bar  ['list_value', 'another_list_value']
baz  baz  baz  []
Run Code Online (Sandbox Code Playgroud)

如何过滤掉空列表?我正在尝试,.isin但它给了我一个错误:

df[df['D'].isin([])]

SystemError: <built-in method view of numpy.ndarray object at 0x0000017ECA74BF30> returned a result with an error set
Run Code Online (Sandbox Code Playgroud)

我也检查了这个问题,但无法弄清楚如何在 DataFrame 上下文中实现。

任何帮助将不胜感激。

python pandas

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

如何在 SQLAlchemy 中连接来自不同数据库的 2 个表?

我正在使用 python/SQLAlchemy 从 MySQL 数据库中提取数据。我有 2 个不同的主机,每个主机都有一个数据库,我需要加入 2 个表(每个主机/数据库中一个)。我该怎么做?

我正在阅读此文档,但无法获得任何直接的帮助。连接到一个数据库非常简单:

engine = create_engine('mysql+pymysql://user:pass@host/database')
Run Code Online (Sandbox Code Playgroud)

但我不确定如何使用两个引擎。

有人吗?提前致谢。

python sqlalchemy

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

从MySQL数据库删除数百万行的最快方法是什么?

我的数据库空间不足,因此我对旧记录进行了备份。现在,我必须清除这些记录,并且我的参考列是“日期”。

我尝试使用标准方法:

DELETE FROM table WHERE date >= '2017-01-01' AND date <= '2017-12-31'
Run Code Online (Sandbox Code Playgroud)

但这显然要花费太多时间,因为要删除的行超过700万行。有没有办法加快速度?我试图划分成几个月甚至更小的块,但是在运行代码一段时间后,我与服务器断开了连接。

提前致谢。

编辑:

CREATE TABLE table (

  id INT(11) NOT NULL AUTO_INCREMENT,
  date DATE DEFAULT NULL,
  # 18 more columns

  PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 29616055,
AVG_ROW_LENGTH = 317,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_general_ci;
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

标签 统计

python ×2

mysql ×1

pandas ×1

sql ×1

sqlalchemy ×1