为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据多个条件更改列的一部分中的值?

如何根据多个条件更改列的一部分中的值?

繁星coding 2022-05-19 15:53:35
如果它们不等于 3 个不同的字符串,我想更改列的一部分(第 109 到 140 行)的值。我试图不迭代,现在我似乎只能在一种情况下这样做。df.loc[109:140,1] != 'Method' or df.loc[109:140,1] != 'Replicates' or df.loc[109:140,1] != 'StandardDeviation'ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().我试过这个:df.loc[109:140,1] != ('Method', 'Replicates', 'StandardDeviation')但它似乎使它成为一个“和”声明。我经常遇到这个错误:ValueError:一个系列的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。我试过用 a|代替,它也不起作用。
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

# mcve:


# np.random.seed(42)

# df = pd.DataFrame({1: np.random.choice(('asdf', 'Method', 'Replicates', 'StandardDeviation'), 10)})


#                    1

# 0         Replicates

# 1  StandardDeviation

# 2               asdf

# 3         Replicates

# 4         Replicates

# 5  StandardDeviation

# 6               asdf

# 7               asdf

# 8         Replicates

# 9             Method

创建一个面具pd.Series.isin()


mask = df[1].isin(('Method', 'Replicates', 'StandardDeviation'))

并用于where更改掩码为的系列的子集False。


df.loc[5:9, 1] = df.loc[5:9, 1].where(mask, 'new better value')

结果:


#                    1

# 0         Replicates

# 1  StandardDeviation

# 2               asdf

# 3         Replicates

# 4         Replicates

# 5  StandardDeviation

# 6   new better value

# 7   new better value

# 8         Replicates

# 9             Method


查看完整回答
反对 回复 2022-05-19
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

请看一下Series.isin()函数。它完全符合您的要求

df.loc[109:140,1].isin(['Method', 'Replicates', 'StandardDeviation'])



查看完整回答
反对 回复 2022-05-19
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

试试这个:


df.loc[109:140]["NAME_OF_COLUMN_1"] = df.apply(lambda row: value1

                                            if row['NAME_OF_COLUMN_1'] not in ['Method', 'Replicates', 'StandardDeviation']

                                            else row['NAME_OF_COLUMN_1'], axis=1)


查看完整回答
反对 回复 2022-05-19
  • 3 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信