2015-09-23 33 views
6

Sütun verilerine göre pandalar veri çerçevesini ayırmanın bir yolu var mı? Örnek olarak, veri çerçevesinin df = ['A_x', 'B_x', 'C_x', 'A_y', 'B_y', 'C_y'] numaralı sütunlara sahip olduğunu ve iki veri karesi X = ['A_x', 'B_x', 'C_x'] ve Y = ['A_y', 'B_y', 'C_y'] oluşturmak istiyorum. BildiğimSütun adına dayalı pandalar veri çerçevesini bölme

bunun için bir olasılık var:

d = {'A': df.A_x, 'B': df.B_x, 'C': df.B_x} 
X = pd.DataFrame (data=d) 

ama df 2200 sütunları var benim durumumda olduğu gibi bu ideal olmaz. Daha şık bir çözüm var mı?

+0

bölmeleri sayısını (sizin durumunuzda örneğin x ve y) sınırlı mı verir? – joris

+0

@joris yes. Benim durumumda eşit x ve y sütunları var ve iki bölüme ayrılmam gerekiyor (biri x ve diğeri y ile birlikte) – Segmented

+0

gerek yok, sadece basit maskeleme yapmak: yani. x = df [['A_x', 'B_x', 'C_x']] ' – Anzel

cevap

10

Sen df.filter(regex=...) kullanabilirsiniz:

import numpy as np 
import pandas as pd 
df = pd.DataFrame(np.random.randn(2, 10), 
        columns='Time A_x A_y A_z B_x B_y B_z C_x C_y C-Z'.split()) 
X = df.filter(regex='_x') 
Y = df.filter(regex='_y') 

In [15]: X 
Out[15]: 
     A_x  B_x  C_x 
0 -0.706589 1.031368 -0.950931 
1 0.727826 0.879408 -0.049865 

In [16]: Y 
Out[16]: 
     A_y  B_y  C_y 
0 -0.663647 0.635540 -0.532605 
1 0.326718 0.189333 -0.803648 
+0

önerdiği gibi unutbu'nun çözümüne bağlı kalacağım! – Segmented

İlgili konular