gpt4 book ai didi

python - 将一列中的对应行替换为另一列中的非缺失对应行

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:58 25 4
gpt4 key购买 nike

我想使用一列中的所有非缺失行来替换另一列中的相应行。数据集来自 Excel 工作簿。数据看起来像这样,大约 450,000 行数据分布在 12 列中。

A B
a1 b1
. b2
. b3
a4 b4
a5 b5

这里,B 中有很多非缺失值,我想用它们全部替换 A 中的相应行,无论 A 中的行是否缺失。 B 中的数据也有缺失值,我不会使用它。

假设我在 B 中的数据是更新的数据,并且我想用这些信息“更新”A 中的相应行。对于 B 列中的任何非缺失行,我想用它们来替换 A 列中的相应行。

我运行这段代码:

data['A'][data['B'].notnull()] = data['B'][data['B'].notnull()]

总是出现内存错误,并伴有警告:“SettingWithCopyWarning:正在尝试在 DataFrame 的切片副本上设置值...”。

解决此内存错误的最佳方法是什么?

非常感谢!

最佳答案

新答案

data.A.update(data.B)

演示

data

A B
0 a1 b1
1 NaN b2
2 NaN b3
3 a4 NaN
4 a5 b5
<小时/>
data.A.update(data.B)
data

A B
0 b1 b1
1 b2 b2
2 b3 b3
3 a4 NaN
4 b5 b5

设置

txt = """A B
a1 b1
. b2
. b3
a4 .
a5 b5"""

data = pd.read_csv(StringIO(txt), delim_whitespace=True, na_values='.')

旧答案

如果这些 . 确实丢失,您可以简单地使用 fillnainplace=True 将更新现有的数据

data.A.fillna(data.B, inplace=True)

如果它们实际上是'.',那么您可以使用replace

data.A.replace('.', data.B, inplace=True)

0 a1
1 b2
2 b3
3 a4
4 a5
Name: A, dtype: object


关于python - 将一列中的对应行替换为另一列中的非缺失对应行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41754485/

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