熊貓新手。 R用戶使用拆分,應用和組合模式來分析子羣體。例如性別,1 ='男',2 ='女',9 ='未知。將熊貓值映射到絕對級別
我有一個數據幀,其日期列的20,000+值是整數1到7,對應於'星期一','星期二'等。我需要使用標籤類別而不是它們的原始int值。
我第一次嘗試是試圖.astype(「類」):
import numpy as np
import pandas as pd
dow = pd.DataFrame({'labels': ("Sunday","Monday","Tuesday",\
"Wednesday", "Thursday", "Friday", "Saturday")})
data = pd.DataFrame({'value': [1, 1, 2, 3, 4, 7, 8, 9, 0]})
data['formtatted'] = dow['labels'].astype('category')
data
value formtatted
0 1 Sunday
1 1 Monday
2 2 Tuesday
3 3 Wednesday
4 4 Thursday
5 7 Friday
6 8 Saturday
7 9 NaN
8 0 NaN
我預期的標籤映射到整數值給「星期日」兩次,而不是得到了重新的行爲循環清單。
接下來我試着像.factorize屬性:
data2 = pd.DataFrame({'values': [1, 1, 2, 3, 4, 7, 8, 9, 0]})
dow2 = pd.DataFrame({'labels': ["Sunday","Monday","Tuesday", \
"Wednesday", "Thursday", "Friday", "Saturday"]})
dow_cat = pd.factorize(dow2['labels'])
dow_cat
(array([0, 1, 2, 3, 4, 5, 6]),
Index(['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday',
'Saturday'], dtype='object'))
看起來很有希望。
data2['labels'] = dow_cat[0]
但引發錯誤:值的長度不符合指標的長度
更多的搜索變成了: https://github.com/pandas-dev/pandas/blob/master/doc/source/categorical.rst#differences-to-rs-factor
指出:這是不可能在創建時指定的標籤。之後使用s.cat.rename_categories(new_labels)。
不夠公平:
dow3 = pd.DataFrame({'values': [1, 2, 3, 4, 5, 6, 7]},
dtype="category")
dow3.values = dow3['values'].cat.rename_categories(["Sunday", \
"Monday","Tuesday","Wednesday", \
"Thursday", "Friday", "Saturday"])
df3['formatted'] = dow3["values"]
df3
values formatted
0 1 Sunday
1 1 Monday
2 2 Tuesday
3 3 Wednesday
4 4 Thursday
5 7 Friday
6 8 Saturday
7 9 NaN
8 0 NaN
哪個地方,我開始,以重新循環列表的行爲。
我敢打賭,我忽視了這個顯而易見的事實,但它無法迴避。關於我從哪裏去的建議?
什麼是你的問題? – Boud