我目前有一個資料框,其中有一列標題為“作業代碼”。作業代碼可以包含六百種不同的 Int 值之一。
每個 Int 對應于我當前在記事本中列出的字串值,如下所示:
119 student
120 construction worker
121 baker
122 teacher
我想知道,是否有一種優雅的方法可以用我的記事本檔案中的相應字串替換“職務代碼”列中的數字?
我目前正在使用以下方法,但我確信必須有比手動在 jobStrings 中鍵入所有 600 個代碼更優化的解決方案。
jobStrings = {
119: "student",
120: "construction worker",
121: "baker",
122: "teacher",
}
df["jobCode"].replace(jobStrings, inplace=True)
uj5u.com熱心網友回復:
將您的文本檔案讀取為 CSV 并使用它來映射/替換:
maps = pd.read_csv('textfile.txt', sep='(?<=\d)\s', names=['code', 'name']).set_index('code')['name']
df["jobCode"] = df["jobCode"].map(maps)
注意。如果前面有數字,則使用空格作為分隔符。請讓我知道您是否在字串中有數字以找到替代方案
地圖內容:
code
119 student
120 construction worker
121 baker
122 teacher
Name: name, dtype: object
uj5u.com熱心網友回復:
這是一個快速(未經測驗)的解決方案:
with open("your_file.txt") as f:
text = f.read().strip()
lines = re.split(r'[\r\n] ', text)
lines = dict([re.split(r'\s ', l) for l in lines])
new_dict = {}
for key in lines.keys():
new_dict[int(key)] = lines[key]
df["jobCode"].replace(new_dict, inplace=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/390586.html
