gpt4 book ai didi

python - 修改 pandas 数据框中的行子集

转载 作者:IT老高 更新时间:2023-10-28 12:34:49 25 4
gpt4 key购买 nike

假设我有一个带有两列 A 和 B 的 pandas DataFrame。我想修改这个 DataFrame(或创建一个副本),以便在 A 为 0 时 B 始终为 NaN。我将如何实现?

我尝试了以下

df['A'==0]['B'] = np.nan

df['A'==0]['B'].values.fill(np.nan)

没有成功。

最佳答案

使用 .loc对于基于标签的索引:

df.loc[df.A==0, 'B'] = np.nan

df.A==0 表达式创建了一个 bool 序列来索引行,'B' 选择列。您还可以使用它来转换列的子集,例如:

df.loc[df.A==0, 'B'] = df.loc[df.A==0, 'B'] / 2

我对 Pandas 的内部结构了解得不够多,无法确切知道为什么会这样,但基本问题是有时索引到 DataFrame 会返回结果的副本,有时会返回原始对象的 View 。根据文档 here ,这种行为取决于底层的 numpy 行为。我发现在一次操作中访问所有内容(而不是 [one][two])更有可能用于设置。

关于python - 修改 pandas 数据框中的行子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12307099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com