2016-08-05 4 views
0

이런 종류의 작업을 수행하는 최적의 방법이 있는지 궁금합니다.팬더 (Pandas) : 문자에 따라 하나의 열에 셀을 분할 한 다음 조건부를 통해 다른 열에 파트를 추가합니까?

user\library\photos\item 

이 같은 경로가 포함되어 내가 파일 경로의 열을 가지고, 우리가 전화 할게 C 드라이브는 dataframe의 열, 다른 열은 디렉터리 [1], 디렉터리 [2입니다 ], ..., 디렉터리 마지막 문자열이 ITEM 열에 부가되도록, [N], ITEM I "는 \"로 C 드라이브에서 세포를 분리 할

, 및 다른 수량에 따라 이전 디렉토리에 추가됩니다.

내 현재의 거친 동작은 몇 가지 While 루프이지만 팬더에서 더 좋은 방법이 있습니까? 나는 도서관에 처음 온 사람이다.

팬더가 이런 종류의 물건을 만들지 않았 음을 알고 싶습니다., 나는 그것을 라이브러리에서 배우기 위해 일부 사용하고 있습니다.

건배!

+2

샘플 데이터를 입력하십시오. 질문에 대답하고 미래의 독자가 무슨 일이 일어나고 있는지 이해하는 데 도움이됩니다. – piRSquared

+0

'while'루프와 적어도 원하는 출력의 예를 보는 것도 도움이 될 것입니다. – Jeff

답변

0

시리즈의 str 속성에서 액세스하는 split 기능을 사용하여 드라이브 경로를 구성 디렉토리로 분할 할 수 있습니다. 그런 다음 결과 시리즈 목록을 DataFrame으로 변환하십시오. 당신은뿐만 아니라 dir_df에서 'C Drive' 열을 원하는 경우

dir_df = pd.DataFrame(df['C Drive'].str.split('\\').tolist()) 
dir_df.columns = ['Dir [{}]'.format(col) for col in dir_df.columns] 
dir_df.columns[-1] = 'ITEM' 

, 당신은 단순히과 같이 추가 할 수 있습니다 : 다음과 같이 그것은, 한 줄에서 수행 할 수

dir_df['C Drive'] = df['C Drive'] 

을 그건 그렇고, 당신은 수도 '\'를 탈출하고 싶다. 데이터를 읽는 동안 '/'또는 '\'로 변환하십시오. 그렇지 않으면 이상한 일이 발생할 수 있습니다.

관련 문제