![](/img/trans.png)
[英]How to replace a value in a pandas dataframe with column name based on a condition?
[英]Replace value in Pandas DataFrame column, based on a condition (contains a string)
我目前正在使用 Pandas 數據集(美國初創公司),並嘗試按關鍵字匯總部門。 換句話說,我需要遍歷一列,如果一個值包含給定的字符串,則用新字符串替換整個值。
如果已經嘗試了一些簡單的“if”語句循環,但似乎無法獲得正確的語法。 我也嘗試過一些 .loc,但我似乎只能用一個字符串替換列的所有值。
謝謝!
一種簡單的方法是將扇區到扇區類別的映射存儲為字典,然后應用調用該映射的函數。
import pandas as pd
data = pd.DataFrame(["chunky spam", "watery spam", "hard-boiled", "scrambled"])
def mapping(sector):
mapping_dict = {"chunky spam": "spam",
"watery spam": "spam",
"hard-boiled": "eggs",
"scrambled": "eggs"}
return mapping_dict[sector]
data[0].apply(mapping)
您可以使用pd.DataFrame.where()
完成此操作:
df.where(df.column_name != "str", "replace")
基於df.where()
方法的公式,它將替換所有不匹配條件的值。 這就是我們在某些列中查找"str"
時使用否定的!=
原因。 所有等於"str"
實例將被替換為字符串"replace"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.