簡體   English   中英

用字典替換熊貓數據集中的值

[英]Replace values from pandas dataset with dictionary

我正在從pandas的 excel文檔中提取一列。 之后,我要為所選列的每一行替換列表中分組的多個字典中包含的所有鍵。

import pandas as pd
file_loc = "excelFile.xlsx"
df = pd.read_excel(file_loc, usecols = "C")

在這種情況下,我的數據幀由df ['Q10']調用,此數據幀有1萬多行。

傳統上,如果要替換df中的值,請使用;

df['Q10'].str.replace('val1', 'val1')

現在,我有一個字典,像:

mydic = [
   {
      'key': 'wasn't',
      'value': 'was not' 
   }
   {
      'key': 'I'm',
      'value': 'I am' 
   }
   ... + tons of line of key value pairs
]

當前,我創建了一個函數,該函數對“ mydic”和替換項進行逐一迭代。

def replaceContractions(df, mydic):
    for cont in contractions:
        df.str.replace(cont['key'], cont['value'])

接下來,我將此函數傳遞給mydic和我的數據框:

replaceContractions(df['Q10'], contractions)

第一個問題:這是非常昂貴的,因為mydic有很多物品,並且每個物品上的數據集都是迭代的。

第二:似乎不起作用:(

有任何想法嗎?

將您的“詞典”轉換為更友好的格式:

m = {d['key'] : d['value'] for d in mydic}

m   
{"I'm": 'I am', "wasn't": 'was not'}

接下來,使用regex開關調用replace並將m傳遞給它。

df['Q10'] = df['Q10'].replace(m, regex=True) 

replace接受一個鍵替換對字典,它比一次遍歷每個鍵替換要快得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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