2016-06-21 2 views
1

나는 작은 샘플 데이터 세트가 : 내가 원하는 하나 개 이상의 CD 값이있는 각 ID에 대한절약 라인 조건 팬더 파이썬을 기반으로 파일에

df 
Out[9]: 
     CD ID 
0 AAAAAAA H576 
1 BBBBB H577 
2 CCCCCC H577 
3 DDDDDD H578 
4 EEEEEEE H600 
5 FFFFFFF H700 
6 GGGGGGG H700 

: 그것은처럼 보이는

import pandas as pd 


df = {'ID': ['H576','H577','H577','H578','H600', 'H700', 'H700'], 
    'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE','FFFFFFF','GGGGGGG']} 

df = pd.DataFrame(df) 

을 그들을 별도의 파일에 저장하십시오.

내 욕망 출력 파일 :

H577.txt

CD  ID 
BBBBB H577 
CCCCCC H577 

CD  ID 
FFFFFFF H700 
GGGGGGG H700 

내 시도 H700.txt :

,
import pandas as pd 


df = {'ID': ['H576','H577','H577','H578','H600', 'H700', 'H700'], 
    'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE','FFFFFFF','GGGGGGG']} 

df = pd.DataFrame(df) 

df1 = (df.groupby('ID').filter(lambda x: ('if CD has more than one value for the same ID'.any()))) 

df1.groupby('ID').apply(lambda gp: gp.to_csv('ID{}.txt'.format(gp.name), sep='\t', index=False)) 

'CD에 동일한 ID의 값이 두 개 이상있는 경우'를 코딩하는 방법을 모르겠다.

+0

이 문제가에서 중복을 찾는 감소 목록 간단한 Google 검색은 'http://stackoverflow.com/questions/9835762/find-and-list-duplicates-in-python-list'를 반환합니다. ID 목록에 적용해야하며 그 시점부터 항해가 쉽습니다. –

+0

@Ev. Kounis 게시물에서 답변을 중복 제거, 내 경우에는 내가 그것을 원하지 않아, 난 여전히 파이썬과 나는 람다 스타일 중 하나를 코드에 맞게 잘 모르겠습니다. – Jessica

+0

하지만 그걸 가져올 수는 없어요. df1이 뭘 원합니까? 중복 만 포함하는 df와 같은 구조입니까? –

답변

1

이 시도 :

(df.groupby('ID') 
    .filter(lambda g: len(g) > 1) 
    .groupby('ID') 
    .apply(lambda gp: gp.to_csv('ID{}.txt'.format(gp.name), sep='\t', index=False)) 
) 

출력

IDH577.txt :

CD ID 
BBBBB H577 
CCCCCC H577 

IDH700.txt :

CD ID 
FFFFFFF H700 
GGGGGGG H700 
관련 문제