python - 为什么在使用应用结果时对数据框的块分配不起作用?
问题描述
我在 pandas 1.1.5 和 numpy 1.20.1 上,并且有一个与此 MWE 类似的用例,我试图一次性计算并为数据帧分配一个值块,但没有成功:
import numpy as np
import pandas as pd
df = pd.DataFrame(
{"a": [1, 2, 3, 4], "b": [np.nan] * 4, "c": [np.nan] * 4}, dtype="Int64"
)
df.loc[pd.isnull(df["b"]) & pd.isnull(df["c"]), ["b", "c"]] = df.loc[
pd.isnull(df["b"]) & pd.isnull(df["c"])
].apply(axis=1, func=lambda x: [1, 1], result_type="expand")
即使应用结果具有正确的块格式,数据帧仍保留为 NA。我也尝试过使用df.loc[...][cols]
= 而不是df.loc[..., cols]
没有成功。
上面的结果打印:
a b c
0 1 <NA> <NA>
1 2 <NA> <NA>
2 3 <NA> <NA>
3 4 <NA> <NA>
而不是想要的:
a b c
0 1 1 1
1 2 1 1
2 3 1 1
3 4 1 1
解决方案
推荐阅读
- java - 如何正确创建复选框数组?或者我的错误是什么?
- excel - Excel:根据特定值将多行插入最后一行
- javascript - 在 JavaScript 选定元素上挂钩 jQuery 方法
- laravel - 传递给 App\Http\Controllers\Auth\LoginController::attemptLogin() 的参数 1 必须是 App\Http\Controllers\Auth\Request 的实例
- high-availability - 如何恢复 Stacked control plane 和 etcd 节点的 HA 集群
- javascript - 使用 $.Ajax 调用 UBER api
- reactjs - 警告受控组件更改为不受控
- c - 无法按预期取消引用多维数组
- github - 即使在设置两因素身份验证后定义了全局 GitHub 帐户,我的私有存储库也变得未找到
- python - Tor Stem:公钥与隐藏服务描述符中的一个不匹配