如果满足条件,则用另一列中的值替换一列中的行

皇家空军

我有以下数据框:

df = pd.DataFrame([[1, 2, "Yes"], [4, 5, "No"], [7, 8, "Yes"], [3, 5, "No"]],
...      index=['a', 'b', 'c', 'd' ],
...      columns=['column_1', 'column_2', 'condition'])

    column_1    column_2    condition
a       1           2        Yes
b       4           5        No
c       7           8        Yes
d       3           5        No

我想在条件为时column_1用相应的值替换中的行值我一直在尝试使用以下代码执行此操作:column_2"Yes"

df.loc[df['condition'] == "Yes", ['column_1']] = df.ix[df['column_1']]

任何提示,不胜感激!

cs95

ix不推荐使用。但是除此之外,这里不需要任何切片器/选择器。只需loc在LHS上选择,熊猫就会执行索引对齐的分配。因此,这就足够了:

df.loc[df['condition'] == "Yes", 'column_2'] = df['column_1']

在索引对齐分配中,仅引入所需的索引df['column_1']

df.loc[df['condition'] == "Yes", 'column_2'] 

a    1
c    7
Name: column_2, dtype: int64

我们仅从中需要索引“ a”和“ c”的值df['column_1'],其他所有内容都将被忽略。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果满足条件,则用另一列的行值替换行值

Python:如果满足条件,则用另一列表中的元素替换

如果列中不存在NA,则用另一列中的值替换-sqldf

如果列中的值与另一列中的值匹配,则用“空白”替换该列中的值

如果第一列的行在 R 中为空,则用另一列的数据替换一列

熊猫:如果列中的值出现在另一列中,则用第三列中的值替换

如果在另一列中满足条件,则使用 sed 替换 csv 列中的值

SQL:如果满足条件,则将值从列复制到同一列中的另一行

如果在另一列中满足条件,则将列值附加到列表

如果某列中的值不满足另一列中的要求,则删除行

熊猫:如果列名存在于另一列中,则用1填充列值

如果另一列中的行满足条件则填充nan

根据条件将一列中的值替换为另一列中的值

如果接受另外3列的条件,则用同一列下一行的NA替换值

Pandas:如果条件为真,则使用另一列替换列中的值

如果至少一列中的值满足使用Pandas any的条件,则选择行

如果缺少另一列,则替换一列中的值

根据条件匹配另一列的向量替换一列中的值

使用条件将一列中的整个值替换为另一列

将一列条件中的值替换为另一列:R

根据Pyspark中另一列的值,有条件地从同一列的另一行值替换一行中的值?

如果不满足另一列中的条件,尝试从pandas列中返回值

如果满足标准,则更改列中的值并使用另一列中的值

如果在SQL的另一列中满足条件,如何对一列中的单元格求和

如果一列中的前一个值和另一列中的下一个值满足条件,则使用 r 将 1 添加到另一列中

检索满足另一列中条件组合的一列中的所有不同值(SQL)

根据另一列中满足的条件进行过滤

提取一列中具有重复项的行,满足另一列中的给定条件

如果条件在另一列中的每个值至少存在一次,则一列中的 SUM 值