2016-10-13 20 views
7

50 sütun veri içeren bir csv dosyası var. İstediğim olanları seçmek için usecols parametresini kullanarak, bu sütunların bir alt kümesinde çekmeye çalışması read_csv pandalar kullanıyorum:Pandalar içinde UseCols'u kullanırken sütunların belirtilen sırada tutulması Read_CSV

cols_to_use = [0,1,5,16,8] 
df_ret = pd.read_csv(filepath, index_col=False, usecols=cols_to_use) 

sorun değil ben belirtilen sırada, df_ret doğru sütun içerir olduğunu. Onlar artan düzende, yani [0,1,5,8,16]. (Bu sayede sütun numaraları koşmaktan değişebilir, bu sadece bir örnektir.) Bu bir problemdir, çünkü kodun geri kalanı "doğru" düzende olan dizilere sahiptir ve hepsini yeniden düzenlemek zorunda kalmamayı tercih ederim. onların

Belirtilen sıraya göre sütunlarda herhangi bir zeki panda çekme yolu var mı? Herhangi bir yardım çok takdir edilecektir!

cevap

5

istenilen sırayla sütunları seçmek için aynı cols_to_use listeyi yeniden kullanabilirsiniz: Bunun için

df_ret = pd.read_csv(filepath, index_col=False, usecols=cols_to_use)[cols_to_use] 
+0

Teşekkür! Yöntem anlamlıdır ancak veriyi yeniden düzenlemek için cols_to_use kullanabileceğimi düşünmüyorum, çünkü veri çerçevesi yalnızca 5 sütun içeriyor ve sütun 5, 8 ve 16 sınır dışı. – AButkov

+0

Bu yüzden sonunda kullandığım col_reorder = [0,1,2,4,3], yani df_ret = pd.read_csv (dosyayolu, index_col = False, usecols = cols_to_use) [col_reorder]. Bu onları istenilen sıraya koyar. – AButkov

+0

@AButkov, "cols_to_use" listesindeki dizinleri yerine sütun adları belirtirseniz cevabım düzgün çalışır – MaxU

İlgili konular