python - 如何用条件逐行替换

标签 python pandas replace

我想替换所有名称列中有“A”的行 来自另一个 df 的单行

我明白了

data={"col1":[2,3,4,5,7],
"col2":[4,2,4,6,4],
"col3":[7,6,9,11,2],
"col4":[14,11,22,8,5],
"name":["A","A","V","A","B"],
"n_roll":[8,2,1,3,9]}
df=pd.DataFrame.from_dict(data)
df

那是我的单行(另一个df)

data2={"col1":[0]
     ,"col2":[1]
     ,"col3":[5]
     ,"col4":[6]
             }
df2=pd.DataFrame.from_dict(data2)
df2

我想要的样子

data={"col1":[0,0,4,0,7],
"col2":[1,1,4,1,4],
"col3":[5,5,9,5,2],
"col4":[6,6,22,6,5],
"name":["A","A","V","A","B"],
"n_roll":[8,2,1,3,9]}
df=pd.DataFrame.from_dict(data)
df

我尝试这样做 df.loc[df["name"]=="A"][df2.columns]=df2 但是没有用

最佳答案

我们可以试试mask + combine_first

df = df.mask(df['name'].eq('A'), df2.loc[0], axis=1).combine_first(df)
df
   col1  col2  col3  col4 name  n_roll
0     0     1     5     6    A     8.0
1     0     1     5     6    A     2.0
2     4     4     9    22    V     1.0
3     0     1     5     6    A     3.0
4     7     4     2     5    B     9.0

关于python - 如何用条件逐行替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64029078/

相关文章:

string - 如何从 Ansible 中的 lookup() 模块的结果中删除换行符字符 '\n'?

Python - 从字典列表中删除重复键

python - Pandas :累积返回函数

javascript - 删除 Javascript 中的所有多个空格并替换为单个空格

linux - grep 和 sed 文件名中有空格

python - 使用 Parquet 存储多个不同宽度的数据帧?

Python Scipy 内核密度估计平滑问题

python - sqlite (python) 的 MPI 锁定

python unix服务库

python - 如何从一列中删除另一列中包含的单词?