gpt4 book ai didi

python - Pandas on Python If-then 命令

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:46 24 4
gpt4 key购买 nike

我有一个代码如下

GU_ES3['Qnd'] = GU_ES3['Qnd,hw_m2'] * GU_ES3['UPOR']

我发现,GU_ES3['UPOR'] 中的某些值是空白的。在这种情况下,我想调用其他专栏,例如GU_ES3['NPOR'],但仅当 GU_ES3['UPOR'] 列中的值为 0NaN 时

你能帮帮我吗?

最佳答案

你想

  1. 在特定情况下,一个 DataFrame 的值会被另一个 DataFrame 替换
  2. 确保平等对待 0 或 NaN

对于 (2),您可以将 0 替换为 NaN,对于 (1),您可以使用 pd.Series.fillna 将 UPOR 中的 NaN 填充为 NPOR,但仅限于它是 NaN 的地方。

i = GU_ES3['Qnd,hw_m2']
j = GU_ES3['UPOR'].replace(0, np.nan).fillna(GU_ES3['NPOR'])
GU_ES3['Qnd'] = i * j

或者,您可以使用 np.where 执行替换:

GU_ES3['Qnd'] = GU_ES3['Qnd,hw_m2'] * np.where(
GU_ES3['UPOR'].replace({0 : np.nan}).isna(), GU_ES3['NPOR'], GU_ES3['UPOR']
)

请注意,对于替换,例如,如果您还想替换 1、2 或 3,则只需使用 .replace(dict.fromkeys([1, 2, 3], np .nan)) 在你的代码中。

关于python - Pandas on Python If-then 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50337343/

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