在數據分析和處理中,Pandas 是一個非常強大的工具。我們經常需要根據某一列的內容來添加新的列。本文將詳細介紹如何通過 Pandas 的列內容匹配字典的鍵來添加新列。
假設我們有一個 DataFrame,其中有一列包含一些鍵值,我們還有一個字典,字典的鍵與 DataFrame 中的某一列內容相匹配。我們的目標是根據 DataFrame 中的這一列內容,通過匹配字典的鍵,將字典中的值添加到 DataFrame 的新列中。
import pandas as pd
# 示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
# 示例字典
city_to_state = {
'New York': 'NY',
'Los Angeles': 'CA',
'Chicago': 'IL',
'Houston': 'TX'
}
在這個例子中,我們有一個包含 Name
和 City
列的 DataFrame,以及一個將城市名稱映射到州縮寫的字典 city_to_state
。我們的目標是根據 City
列的內容,通過匹配字典的鍵,將州縮寫添加到 DataFrame 的新列 State
中。
map
函數Pandas 提供了 map
函數,可以非常方便地實現這一功能。map
函數可以將一個 Series 中的每個元素映射到另一個值。
map
函數將 City
列中的每個城市名稱映射到對應的州縮寫。State
。df['State'] = df['City'].map(city_to_state)
print(df)
輸出:
Name City State
0 Alice New York NY
1 Bob Los Angeles CA
2 Charlie Chicago IL
3 David Houston TX
可以看到,新列 State
已經成功添加,并且每個城市對應的州縮寫也被正確地映射到了新列中。
在實際應用中,可能會遇到 DataFrame 中的某些值在字典中沒有對應的鍵。這種情況下,map
函數會返回 NaN
。
假設我們的 DataFrame 中有一個城市在字典中沒有對應的州縮寫:
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'San Francisco']
}
df = pd.DataFrame(data)
# 示例字典
city_to_state = {
'New York': 'NY',
'Los Angeles': 'CA',
'Chicago': 'IL',
'Houston': 'TX'
}
df['State'] = df['City'].map(city_to_state)
print(df)
輸出:
Name City State
0 Alice New York NY
1 Bob Los Angeles CA
2 Charlie Chicago IL
3 David Houston TX
4 Eve San Francisco NaN
可以看到,San Francisco
在字典中沒有對應的鍵,因此 State
列中對應的值為 NaN
。
我們可以使用 fillna
函數來處理這些缺失值。例如,我們可以將缺失值替換為 Unknown
:
df['State'] = df['City'].map(city_to_state).fillna('Unknown')
print(df)
輸出:
Name City State
0 Alice New York NY
1 Bob Los Angeles CA
2 Charlie Chicago IL
3 David Houston TX
4 Eve San Francisco Unknown
apply
函數除了 map
函數,我們還可以使用 apply
函數來實現相同的功能。apply
函數可以對 DataFrame 的某一列或某一行應用一個函數。
apply
函數將定義的函數應用到 City
列。def get_state(city):
return city_to_state.get(city, 'Unknown')
df['State'] = df['City'].apply(get_state)
print(df)
輸出:
Name City State
0 Alice New York NY
1 Bob Los Angeles CA
2 Charlie Chicago IL
3 David Houston TX
4 Eve San Francisco Unknown
通過 Pandas 的 map
或 apply
函數,我們可以非常方便地根據 DataFrame 中的某一列內容匹配字典的鍵來添加新列。map
函數適用于簡單的映射操作,而 apply
函數則更加靈活,可以處理更復雜的邏輯。在實際應用中,我們還需要注意處理可能出現的缺失值,以確保數據的完整性和準確性。
希望本文能幫助你更好地理解如何通過 Pandas 的列內容匹配字典的鍵來添加新列。如果你有任何問題或建議,歡迎在評論區留言討論。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。