簡體   English   中英

帶有枚舉垃圾箱的pandas.cut

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM