2016-09-19 3 views
0

을 나는 다음과 같은 dataframe 한 사용 dataframe의 세포에서 콘텐츠를 제거합니다 그래야 다음과 같습니다.어떻게 부분적으로 파이썬

  • 부분 문자열이 \n 인 경우 한 번만 나타나면 그 전에 오는 모든 문자와 함께 삭제됩니다.
  • 문자열 \n 특정 셀에 두 번 이상 나타나는 경우, 그때 제거 모든 전에 오는 것과 함께 이후에 포함 된 \n 코드의

출력 (사이에 무슨 제외) 그들

enter image description here

주의 사항 :이 있어야한다

: 지금까지 난 단지 제거하는 방법을 알고 이전 또는 다음 명령을 사용하여 문자열 다음에 오는 어떤 출력이기 때문에 691,363,210
df = df.astype(str).stack().str.split('\n').str[-1].unstack() 
df = df.astype(str).stack().str.split('\n').str[0].unstack() 

그러나이 코드 줄은 원하는 결과에 저를 인도하지 않습니다

enter image description here

답변

1

df.replace 일부 정규식.

In [1]: import pandas as pd 
    ...: df = pd.DataFrame([ 
    ...:   ['\nSOVAT\n', 'DVR', 'MEA', '\n195\n'], 
    ...:   ['PINCO\nGALLO ', 'DVR', 'MEA\n', '195'], 
    ...:  ]) 
    ...: 

In [2]: df.replace(r'.*\n(.*)\n?.*', r'\1', regex=True) 
Out[3]: 
     0 1 2 3 
0 SOVAT DVR MEA 195 
1 GALLO DVR  195