2016-01-08 39 views
34

bir DataFrame belirli seçilen sütunları ayıklanıyor ben 4 sütunlu bir pandalar DataFrame var ve sadece sütun üç tane var bir yeni DataFrame oluşturmak istiyorum. Bu soru benzer: Extracting specific columns from a data frame ama panda değil R için. Aşağıdaki kod çalışmıyor, bir hata verir ve kesinlikle bunu yapmak için pandasnic yolu değildir.pandalar: Yeni DataFrame

import pandas as pd 
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]}) 
new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator 

bunu yapmak için pandasnic yolu nedir?

cevap

64

Bunu yapmanın bir yolu yoktur ve aslında sadece orijinal veri çerçevesi istediğiniz sütunları seçme ve kişiler için bir değişken yaratıyor İşte R

new = old[['A', 'C', 'D']].copy() 

benziyor. Yeni veri çerçevesini değiştirmek isterseniz, SettingWithCopyWarning'u önlemek için muhtemelen .copy()'u kullanabilirsiniz. Bu bir drop kullanarak ifade etmek

new = old.filter(['A','B','D'], axis=1) 

Son olarak, orijinal dataframe sütunların sayısına bağlı olarak daha kısa ve öz olabilir:

alternatif bir yöntem varsayılan olarak bir kopyasını oluşturur filter kullanmaktır (Bu ayrıca varsayılan olarak bir kopyasını oluşturacaktır):

new = old.drop('B', axis=1) 
İlgili konular