python - 将熊猫升级到 1.03 后,熊猫因空数据框而失败是错误还是功能?(TypeError:无法使用 dtyped 执行“rand_”)
问题描述
我有点困惑,熊猫的一些简洁功能(在此示例中处理空数据框)不再受支持,或者是否有更深层次的理由删除这些功能。这是一个工作玩具示例
import pandas as pd
df = pd.DataFrame({'a': [1]})
mask = (df.a > 0) & df.apply(lambda row: row.a > 0, axis=1)]
print(df[mask])
✅ 工作正常
> a
> 0 1
但是 3 个字母更改失败:
df = pd.DataFrame({'a': [1]})[:0]
mask = (df.a > 0) & df.apply(lambda row: row.a > 0, axis=1)
❌<code>TypeError: 无法使用 dtyped [int64] 数组和 [float] 类型的标量执行“rand_”
这在早期的 pandas 2.5 中不是问题
由于此处只有一列,因此更改类型无济于事。问题当然部分是由于当 f(any) 函数应用于空 df 时 panda 返回数据帧本身。
评论:这个例子非常愚蠢,因为两个过滤器都在做同样的事情,但我不知道除了通过lambda函数之外应用复杂过滤器(具有跨多个列的逻辑)的好方法。
解决方案
推荐阅读
- google-apps-script - 使用 Google Apps 脚本、webhook 将多个帖子发送到电报
- reactjs - 如何使用这个类添加不同的事件 |REACT JS|
- typescript - Typescript: Nested Typings - 寻找更优雅的解决方案
- java - 为什么我在 Java 中收到“找不到类”错误?
- java - 在使用 xml 映射器序列化 java bean 时从肥皂 Web 服务响应中屏蔽敏感数据
- html - 使用 flexbox 自定义画廊布局
- android - 默认值未设置为 TextInputLayout Android XML
- cron - 从 AppleScript 制作 cronjob
- android - Android Sqlite 中的 Select 查询中的自定义对象
- activemq-artemis - Apache ActiveMQ Artemis 如何调查消息是否丢失?