使用另一列中的值有条件地更新pandas dataframe列

时间:2019-04-03 13:14:17

标签: python python-3.x pandas dataframe

我需要重写dataframe列中的某些值,但要以另一列中的值为条件。

我遇到的问题是,我可以标识某些行并将其替换为字符串,但不知道如何替换另一列中的数据

我尝试了以下代码,但遇到以下错误:

  

SettingWithCopyWarning:   试图在DataFrame的切片副本上设置一个值。   尝试改用.loc [row_indexer,col_indexer] =值

当我运行下面显示的示例代码时

df['Year'] = np.where(df['CallDtYear'] != 0, df['CallDtYear'], df['Year'])

我也尝试过.iloc,但是不知道如何用另一行的数据代替字符串值替换我选择的行

我的数据框df是:

ID        CallDtYear  Year
EJ891119  2024        0
EJ522806  0           2023
ED766836  2019        0
EK089367  2023        2024
EK414703  2026        2026
EI684097  0           2021

我希望我的预期输出能产生

ID        CallDtYear  Year
EJ891119  2024        2024
EJ522806  0           2023
ED766836  2019        2019
EK089367  2023        2023
EK414703  2026        2026
EI684097  0           2021

1 个答案:

答案 0 :(得分:1)

您即将关闭,只需使用df.popServerType将从数据框中删除该列并返回其值:

default:
    return null;