Python數(shù)據(jù)處理之輕松實現(xiàn)顏色與數(shù)字的映射
在數(shù)據(jù)分析與日常數(shù)據(jù)處理中,我們經(jīng)常需要將文本信息轉(zhuǎn)換為數(shù)值型數(shù)據(jù),尤其在顏色編碼、分類標(biāo)簽等場景中尤為常見。
今天,我將分享一個簡單實用的 Python 示例,

演示如何利用 pandas 庫將顏色名稱映射為對應(yīng)的數(shù)字,并將結(jié)果保存為 Excel 文件。

定義顏色到數(shù)字的映射關(guān)系
首先,我們需要建立一個字典,明確每種顏色對應(yīng)的數(shù)字編號。以下是一個示例映射(可根據(jù)實際需求擴展):
color_to_num = {
"經(jīng)典黑": 1,
"氣質(zhì)藍(lán)": 2,
"橙": 6,
# 其他顏色映射...
}
讀取 Excel 文件
接著,使用 pandas 讀取包含顏色數(shù)據(jù)的 Excel 文件。請確保文件路徑正確,且文件中包含名為“源數(shù)據(jù)”的列:
import pandas as pd excel_path = "source_data.xlsx" # 可根據(jù)實際路徑修改 df = pd.read_excel(excel_path)
將顏色字符串轉(zhuǎn)換為數(shù)字串
我們定義一個函數(shù) colors_to_numbers,用于處理“源數(shù)據(jù)”列中的顏色字符串(以中文逗號分隔),將其逐一映射為數(shù)字,并拼接成逗號分隔的數(shù)字串:
def colors_to_numbers(color_str):
colors = [c.strip() for c in color_str.split(',')] # 按中文逗號分割
numbers = [str(color_to_num.get(c, "?")) for c in colors] # 未知顏色標(biāo)記為 "?"
return ','.join(numbers)
df["模擬結(jié)果"] = df["源數(shù)據(jù)"].apply(colors_to_numbers)
輸出處理結(jié)果
處理完成后,可以在控制臺直接查看轉(zhuǎn)換后的數(shù)據(jù),便于快速驗證:
print("處理后的結(jié)果:")
print(df)
保存為新的 Excel 文件
最后,將包含原始數(shù)據(jù)與轉(zhuǎn)換結(jié)果的 DataFrame 保存為新的 Excel 文件,以便后續(xù)分析或分享:
output_path = "result_with_mapping.xlsx"
df.to_excel(output_path, index=False)
print(f"\n已保存結(jié)果至:{output_path}")
總結(jié)
通過這個簡單的示例,我們學(xué)會了如何借助 Python 和 pandas 庫,將顏色名稱字符串映射為對應(yīng)的數(shù)字串,并輸出為 Excel 文件。這種方法在實際數(shù)據(jù)處理中非常實用,尤其適用于需要將分類文本(如顏色、標(biāo)簽等)轉(zhuǎn)換為數(shù)值以便進一步分析的場景。
如果你有任何疑問,或者希望了解其他數(shù)據(jù)處理主題,歡迎在評論區(qū)留言。讓我們一起在數(shù)據(jù)學(xué)習(xí)的道路上不斷進步!
全部實現(xiàn)源代碼
import pandas as pd
# 1. 定義顏色到數(shù)字的映射字典
color_to_num = {
"經(jīng)典黑": 1, "氣質(zhì)藍(lán)": 2, "橙": 6, "浪漫紅": 3, "貴族金": 4,
"藍(lán)色": 2, "黑色": 1, "金色": 4, "米白色": 5, "酒紅色": 3,
"洋紅": 3, "白": 5, "黑": 1, "藍(lán)": 2, "紅": 3, "雪白": 5,
"玫瑰金": 4, "天際藍(lán)": 2, "活力橙": 6, "黃金": 4,
"金黃色": 4, "魚肚白": 5, "白花花": 5, "紅色的": 3, "大紅色的": 3,
"純白色": 5, "灰白": 5
}
# 2. 讀取Excel文件(請確保文件路徑正確,且包含“源數(shù)據(jù)”列)
excel_path = "source_data.xlsx" # 可以修改為實際文件路徑
df = pd.read_excel(excel_path)
# 3. 將“源數(shù)據(jù)”列中的顏色字符串轉(zhuǎn)換為數(shù)字串
def colors_to_numbers(color_str):
colors = [c.strip() for c in color_str.split(',')] # 中文逗號分割
numbers = [str(color_to_num.get(c, "?")) for c in colors]
return ','.join(numbers)
df["模擬結(jié)果"] = df["源數(shù)據(jù)"].apply(colors_to_numbers)
# 4. 輸出最終結(jié)果
print("處理后的結(jié)果:")
print(df)
# 5. 可選:保存為新Excel文件
output_path = "result_with_mapping.xlsx"
df.to_excel(output_path, index=False)
print(f"\n已保存結(jié)果至:{output_path}")
到此這篇關(guān)于Python數(shù)據(jù)處理之輕松實現(xiàn)顏色與數(shù)字的映射的文章就介紹到這了,更多相關(guān)Python顏色與數(shù)字映射內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式
本文通過三種方式給大家介紹Python找出列表中出現(xiàn)次數(shù)最多的元素,每種方式通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下2020-02-02
淺談pandas dataframe對除數(shù)是零的處理
這篇文章主要介紹了淺談pandas dataframe對除數(shù)是零的處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解
這篇文章主要介紹了Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
利用Python高效處理Excel數(shù)據(jù)的實踐指南
在當(dāng)今的數(shù)據(jù)驅(qū)動時代,Python已成為數(shù)據(jù)科學(xué)家和分析師不可或缺的工具,本文將深入探討Python讀取Excel文件的方法,希望可以幫助大家輕松駕馭各種復(fù)雜的Excel數(shù)據(jù)2025-09-09
Python開發(fā)中爬蟲使用代理proxy抓取網(wǎng)頁的方法示例
這篇文章主要介紹了Python開發(fā)中爬蟲使用代理proxy抓取網(wǎng)頁的方法,結(jié)合具體實例形式分析了urllib模塊代理與requests模塊代理兩種實現(xiàn)技巧,需要的朋友可以參考下2017-09-09
python調(diào)用百度語音識別實現(xiàn)大音頻文件語音識別功能
這篇文章主要為大家詳細(xì)介紹了python調(diào)用百度語音識別實現(xiàn)大音頻文件語音識別功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08

