用列表理解的完整状态替换df系列中的缩写状态



我觉得这是可能的,但我不确定:

这是我现在的代码:

def full_states(upload_list):
abr_states = ["AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "RI", "ON", "AB", "BC", "DC", "NB"]
state_names = ["Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming", "Rhode Island", "Ontario", "Alberta", "British Columbia", "Washington D.C.", "New Brunswick"]
series = []
for a in range(len(abr_states)):
for s in range(len(state_names)):
upload_series = upload_list["State"].str.replace(abr_states[a],state_names[s])
series.append(upload_series)
print(series)
upload_list["State"] = series
return upload_list
full_states(upload_list)

如果不明显的话,我有一个pandas数据帧列,其中有缩写状态。我试图循环浏览缩写状态列表和一个完整状态,并将它们插入到str.replacepandas系列方法中,用完整状态名称替换列中的缩写状态(目前都已删除(。我不知道我应该采取什么不同的方式来获得想要的结果,我陷入了困境。感谢任何方向!

这是一本包含两个字母的邮政编码及其对应的州/省/地区的长词典。

abbrevs = {
'AA': 'Armed Forces Americas',
'AB': 'Alberta',
'AE': 'Armed Forces Europe',
'AK': 'Alaska',
'AL': 'Alabama',
'AP': 'Armed Forces Pacific',
'AR': 'Arkansas',
'AS': 'American Samoa',
'AZ': 'Arizona',
'BC': 'British Columbia',
'CA': 'California',
'CD': 'Canada',
'CO': 'Colorado',
'CT': 'Connecticut',
'DC': 'Dist. Of Columbia',
'DE': 'Delaware',
'FF': 'Foreign Countries',
'FL': 'Florida',
'GA': 'Georgia',
'GU': 'Guam',
'HI': 'Hawaii',
'IA': 'Iowa',
'ID': 'Idaho',
'IL': 'Illinois',
'IN': 'Indiana',
'KS': 'Kansas',
'KY': 'Kentucky',
'LA': 'Louisiana',
'MA': 'Massachusetts',
'MB': 'Manitoba',
'MD': 'Maryland',
'ME': 'Maine',
'MI': 'Michigan',
'MN': 'Minnesota',
'MO': 'Missouri',
'MS': 'Mississippi',
'MT': 'Montana',
'MX': 'Mexico',
'NB': 'New Brunswick',
'NC': 'North Carolina',
'ND': 'North Dakota',
'NE': 'Nebraska',
'NH': 'New Hampshire',
'NJ': 'New Jersey',
'NL': 'Newfoundland and Labrador',
'NM': 'New Mexico',
'NS': 'Nova Scotia',
'NT': 'Northwest Territories',
'NU': 'Nunavut',
'NV': 'Nevada',
'NY': 'New York',
'OH': 'Ohio',
'OK': 'Oklahoma',
'ON': 'Ontario',
'OR': 'Oregon',
'PA': 'Pennsylvania',
'PE': 'Prince Edward Island',
'PR': 'Puerto Rico',
'QC': 'Quebec',
'RI': 'Rhode Island',
'SC': 'South Carolina',
'SD': 'South Dakota',
'SK': 'Saskatchewan',
'TN': 'Tennessee',
'TT': 'Trust Territory',
'TX': 'Texas',
'UN': 'Unknown',
'UT': 'Utah',
'VA': 'Virginia',
'VI': 'Virgin Islands',
'VT': 'Vermont',
'WA': 'Washington',
'WI': 'Wisconsin',
'WV': 'West Virginia',
'WY': 'Wyoming',
'YT': 'Yukon ',
}

如果您有包含这些代码的系列/DataFrame,您可以使用替换它们

upload_list.State.replace(abbrevs, inplace=True)

最新更新