簡體   English   中英

根據條件(包含字符串)替換 Pandas DataFrame 列中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM