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