2016-04-12 14 views
1

Veri çerçevemde (sdbfile), değerleri sdbfile dataframe öğelerinden öğeler kullanılarak birkaç yuvalanmış koşullu ifadeye dayanan bir dizi oluşturmaya çalışıyorum. Reins_code serisi dize değerleri ile doldurulur.Numpy/Pandas Serisi operatörle mi başlar? Var mı?

aşağıda deyimi ben

sdbfile['product'] = np.where(sdbfile.reins_code == 'R2', 'HiredPlant','Trad') 

Bu dize işlevini sevmez 'reins_code' R # ' 'Belirli == yerine' R ile' başlıyorsa söylemek yapılandırmanız gerekir ancak işleri beginwith() bir np.series olarak mı?

Herhangi biri yardım edebilir mi? Belgelerle doldu ancak bu soruna bir başvuru göremiyor .......

+0

You sadece 1 cevabı kabul edebilir, daha sonra yeterli sayıda – EdChum

+0

Şerefe sahip olabilirsiniz. Bu gerçekten harika bir yer. Kodlarımın emin olacağı gibi görgü kurallarınız da zamanla gelişecektir. – b123kotey

cevap

1

kullanın bir boolean maske dönmek için:

In [6]: 
df = pd.DataFrame({'a':['R1asda','R2asdsa','foo']}) 
df 

Out[6]: 
     a 
0 R1asda 
1 R2asdsa 
2  foo 

In [8]: 
df['a'].str.startswith('R2') 

Out[8]: 
0 False 
1 True 
2 False 
Name: a, dtype: bool 

In [9]: 
df[df['a'].str.startswith('R2')] 

Out[9]: 
     a 
1 R2asdsa 
+0

Teşekkür ederim. Benim deneyimsizliğimde, belirli pandas nesnesine göre doğru str işlevini seçmek yerine, karşılaştırmadan önce dönüştürmeyi deneyen yanlış açıyla uğraşıyordum. – b123kotey

+0

Sorunun cevabını çözdüyse, cevabımın sol üst kısmında boş bir onay işareti olacaksa endişelenmenize gerek yok. – EdChum

1

str pandalarını kullanın. http://pandas.pydata.org/pandas-docs/stable/text.html

Serisi ve Dizin kolay dizinin her öğesi üzerinde işlem yapmak dize işleme yöntemleri seti ile donatılmıştır. Belki de en önemlisi , bu yöntemler otomatik olarak eksik/NA değerleri 'u hariç tutar. dize yöntemlerinde yerleşik Bunlar str özniteliği aracılığıyla erişilir ve genellikle eşdeğeri (skaler) ile eşleşen adlara sahip: vektörleştirilmiş str.startswith

sdbfile['product'] = np.where(sdbfile.reins_code.str[0] == 'R', 'HiredPlant','Trad') 
+0

Bu faturaya mükemmel uyuyor! Teşekkür ederim! – b123kotey