gpt4 book ai didi

python - 使用Python Pandas,仅当 "nan"值不存在时,我可以根据另一列替换 df 中一列的值吗?

转载 作者:行者123 更新时间:2023-12-02 01:25:43 25 4
gpt4 key购买 nike

假设我有一个像这样的数据框:

import pandas as pd
data1 = {
"date": [1, 2, 3],
"height": [420.3242, 380.1, 390],
"height_new": [300, 380.1, "nan"],
"duration": [50, 40, 45],
"feeling" : ["great","good","great"]
}
df = pd.DataFrame(data1)

我想用“height_new”列更新“height”列,但当“height_new”的值为“nan”时则不更新。关于如何以 Python 方式执行此操作的任何提示?

我有一个粗略的代码,可以完成工作,但感觉很笨拙(代码行太多)。

for x, y in zip(df['height'], df['height_new']) :
if y != 'nan':
df['height'].replace(x, y, inplace= True)
x = y

最佳答案

您可以使用pandas.Series.wherepandas.Series.notna :

df["height"] = df["height_new"].where(df["height_new"].notna(), df["height"])

# 输出:

print(df)
date height height_new duration feeling
0 1 300.0 300.0 50 great
1 2 380.1 380.1 40 good
2 3 390.0 NaN 45 great

注意:如果 "nan" 是文字字符串,请改用它:

df["height"] = df["height_new"].where(df["height_new"].ne("nan"), df["height"])

关于python - 使用Python Pandas,仅当 "nan"值不存在时,我可以根据另一列替换 df 中一列的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74737791/

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