亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據多個條件更改列的一部分中的值?

如何根據多個條件更改列的一部分中的值?

繁星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條經驗 獲得超13個贊

請看一下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 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號