[英]pandas.cut with enumerated bins
假設我有以下數據(這是我的實際數據的簡化但准確的表示形式):
df
Age Country
0 10 1
1 15 2
2 20 3
3 25 1
4 30 2
5 15 3
6 20 3
7 15 4
8 20 4
我想用pandas.cut來斌國家1和3到BIN1,和國家的2和4成BIN2。 使用預設數量的箱進行裝箱或使用邊緣進行箱裝均無效。 在某些可能的情況下,這將通過以下代碼來實現,但不幸的是,這些代碼在現實世界中格式不正確:
conts = [‘Africa’, ‘Asia’]
bins = [[1,3], [2,4]]
df['Continent'] = pd.cut(df['Country'], bins, labels = conts)
熊貓中是否有某些功能,或者我缺少一個簡單的解決方法?
以下多對一映射將為您工作:
dc = {(1,3):'Africa', (2,4):'Asia'}
dc_={}
for keys,v in dc.items():
for k in keys:
dc_[k]=v
df['Continent'] = df['Country'].map(dc_)
df
Age Country Continent
0 10 1 Africa
1 15 2 Asia
2 20 3 Africa
3 25 1 Africa
4 30 2 Asia
5 15 3 Africa
6 20 3 Africa
7 15 4 Asia
8 20 4 Asia
正如EdChum所指出的,地圖是前往此處的方法
continent_lookup = {1: 'Africa', 2: 'Asia', 3: 'Africa', 4: 'Asia'}
df['Continent'] = df.Country.map(continent_lookup)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.