2016-10-18 6 views
1

다음과 같은 문제가 있습니다. 저는 이런 종류의 데이터 프레임을 가지고 있습니다 :하나의 열을 다른 그래프에 플로팅하는 방법은 무엇입니까?

f = pd.DataFrame([['Meyer', 2], ['Mueller', 4], ['Radisch', math.nan], ['Meyer', 2],['Pavlenko', math.nan]]) 

첫 번째 열에 의해 여러 데이터 프레임에서 DataFrame을 분할하는 우아한 방법이 있습니까? 그래서 첫 번째 컬럼 = 'Müller'와 첫 번째 컬럼 = Radisch에 대한 데이터 프레임을 얻고 싶습니다. 사전에

감사합니다,

에릭

답변

0

당신은 boolean indexing와 열 Aunique 값을 기준으로 반복 할 수 있습니다 : - :

dfs = {x:df[df.A == x].reset_index(drop=True) for x in df.A.unique()}  
print (dfs) 
{'Meyer':  A B 
0 Meyer 2.0 
1 Meyer 2.0, 'Radisch':   A B 
0 Radisch NaN, 'Mueller':   A B 
0 Mueller 4.0, 'Pavlenko':   A B 
0 Pavlenko NaN} 

print (dfs.keys()) 
dict_keys(['Meyer', 'Radisch', 'Mueller', 'Pavlenko']) 

print (dfs['Meyer']) 
     A B 
0 Meyer 2.0 
1 Meyer 2.0 

print (dfs['Pavlenko']) 
      A B 
0 Pavlenko NaN 

df = pd.DataFrame([['Meyer', 2], ['Mueller', 4], 
        ['Radisch', np.nan], ['Meyer', 2], 
        ['Pavlenko', np.nan]]) 
df.columns = list("AB") 
print (df) 
      A B 
0  Meyer 2.0 
1 Mueller 4.0 
2 Radisch NaN 
3  Meyer 2.0 
4 Pavlenko NaN 

print (df.A.unique()) 
['Meyer' 'Mueller' 'Radisch' 'Pavlenko'] 

for x in df.A.unique(): 
    print(df[df.A == x]) 

     A B 
0 Meyer 2.0 
3 Meyer 2.0 
     A B 
1 Mueller 4.0 
     A B 
2 Radisch NaN 
      A B 
4 Pavlenko NaN 

그런 다음 dict 이해를 사용 dictionaryDataFrames의를 얻을 수

+0

잘 작동 했으니 까, 고마워! –

관련 문제