[英]Merging pandas get_dummies back to categorical values
我有一個 pandas dataframe,我有一個用 get_dummies 熱編碼的數據,數據以前有一個“類型”列,其中包含值 small_airport、large_airport、medium_airport,我將類型列分成每個不同類型的機場,其中 1 和 0頻率匹配。 使用get_dummies后,看起來有點像這樣:
frequency_mhz, type_large_airport, type_medium_airport, type_small_airport
-122.3648, 0, 1, 0
基本上我現在需要“撤消” get_dummies 並取回類型列。 我看過很多類似的問題並嘗試使用。
df = pd.get_dummies(data).idxmax(1)
但我似乎無法獲得我需要的結果,或者我對答案的理解不足以將它們實施到我自己的項目中。
我真的希望這很清楚! 任何幫助將不勝感激!
測試 df:
key_a key_b key_c
0 0 1 0
1 0 1 0
2 1 0 0
3 0 0 1
4 1 0 0
5 0 1 0
代碼:
df.idxmax(axis='columns')
Output:
key_a key_b key_c key
0 0 1 0 key_b
1 0 1 0 key_b
2 1 0 0 key_a
3 0 0 1 key_c
4 1 0 0 key_a
5 0 1 0 key_b
對於您的情況,您可能想要明確選擇您正在使用的列,又名:
df['airport_type'] = df[['type_large_airport', 'type_medium_airport', 'type_small_airport']].idxmax(axis='columns')
然后如果你想簡化結果:
df.replace(['type_large_airport', 'type_medium_airport', 'type_small_airport'], ['large', 'medium', 'small'], inplace=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.