üzerine pandalar get_dummies açık sınırlar göstergelerini oluşturun, biz qcut sınırlarından açık sınırları oluşturmak ([u '[5, 30]' u (30, 70] '], d_type = 'nesne') biz bopens hale:qcut ile <em>yaşlı</em> olarak sayısal <em>yaş</em> pandalar sütununda, ayrıklaştırılabilir itibaren discretized sayısal
>>> bopens = get_open_bounds(df)
>>> bopens
# ['(-inf, 5]', '(-inf, 30]', '(-inf, 70]', '(5, +inf)', '(30, +inf)', '(70, +inf)']
Sonra emzik içine kategorik değişken dönüştürmek/göstergesi get_dummies değişkenler:
df = pd.get_dummies(df)
print df
# age ageD_[5, 30] ageD_(30, 70]
# 0 5 1 0
# 1 23 1 0
# 2 43 0 1
# 3 70 0 1
# 4 30 1 0
Açık sınır sütun veri çerçevesi ile zenginleştirmek istiyoruz, df.shape oldukça büyük, ~ (10e6, 32) olacaktır. Her satır için 6 bopen cols için yapmanın en iyi yolu nedir?
>>> df
age age_[5, 30] age_(30, 70] (-inf, 5] (-inf, 30] (-inf, 70] (5, +inf) (30, +inf) (70, +inf)
0 5 1 0 1 1 1 0 0 0
1 23 1 0 0 1 1 1 0 0
2 43 0 1 0 0 1 1 1 0
3 70 0 1 0 0 1 1 1 0
4 30 1 0 0 1 1 1 0 0
PS:
hedef df bu bir benzeyecek
def get_open_bounds(df):
bounds = [(int(x[1:]), int(y[:-1])) for x, y in
[c.split(', ') for c in df.ageD.cat.categories]]
bounds = list(chain(*bounds))
bounds
# [5, 30, 30, 70]
# to get uniques, keeping the order
bounds = [b for idx, b in enumerate(bounds) if b not in bounds[:idx]]
# make the open bounds
bopens = ["(-inf, {}]".format(b) for b in bounds] + \
["({}, +inf)".format(b) for b in bounds]
return bopens
çerçeve yapıcısına df.index geçen ne anlama geliyor? – user3313834
user3313834 @: DataFrame birkaç (o ile doldurulmak üzere biteni) data' 'dahil argümanlar,' columns' (sütun adları) ve 'index' sürer. 'İndeks' iletemedim, bu yüzden 'dl' ve 'dr' endeksleri 0,1,2,3 olsun .. Eğer 'df '0,1,2,3 .. vs yoksa, o zaman endeksler eşleşmeyeceğinden, birleştirme beklenmedik sonuçlar verecektir. – DSM