パンダの新機能。 Rユーザーは、サブ集団を分析するために分割、適用、結合パターンを使用します。例えば性別、1 =「男性」、2 =「女性」、9 = '不明。パンダの値をカテゴリレベルにマップ
「Mon」、「Tue」などに対応する2万以上の値が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
私は、ラベルは再の動作を取得二回、代わりに「日曜日」を与える整数値にマッピングすることが期待しています-cycledリスト。
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'))
有望に見える:
次は私のような.factorize属性をしてみてください。
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