2017-01-20 2 views
4

Series.str.zfill(width) 메서드의 사용자 정의 버전을 찾고 있습니다. 이 메서드는 문자열에 width자를 포함하도록 문자열에 0을 추가합니다. 이 일을 찾고 있지만 문자 (또는 문자 시퀀스) 0 함께뿐만 아니라 찾고 있어요. 예를 들어 문자열을 width 문자가되도록 왼쪽에서 필요한만큼 '-'를 여러 번 추가하십시오.팬더의 시리즈 내에서 특수 문자열 서식 지정

답변

3

난 당신이 인수로 widthfillchar 소요 Series.str.rjust 찾고있는 생각 :

가 추가 문자로 시리즈/지수 문자열의 왼쪽을 작성합니다.

1

left_fill과 같은 사용자 지정 함수를 정의하고 pandas.Series.apply을 사용하여 전체 계열에 매핑 할 수 있습니다.

import pandas as pd 

s = pd.Series(['foo', 'bar', 'baz', 'apple']) 

def left_fill(string, char, length): 
    while len(string) < length: 
     string = char + string 
    return string 

s.apply(left_fill, args = ('-', 5)) 

그러나, 코멘트에 언급 한 바와 같이, 당신이 사용하는 더 나을있는 pandas 내장 rjust 방법 당신의 자신을 만드는 대! 내 것은 그저 성능이 떨어지는 또 다른 예일뿐입니다.

+0

벡터화 된 메서드가있는 경우 실제로는 '적용'답변을 제공하지 말아야합니다. – EdChum

+0

이것은 일을하는 또 다른 방법 일뿐입니다. 후드를 조금만 들여다 보면서 아무런 해를 끼치 지 않고 여기에두고 있습니다. – blacksite

+0

작은 데이터 세트의 경우 '적용'속도는 더 빠르지 만 기존의 방법은 확장 성이 좋지만 목록 내포가 더 빠를 수도 있습니다. 팬더 사용자에게는 다른 옵션이 없으면 실제로 '적용'만 사용해야합니다. 아주 드물다. 또한 사용자 코드를 많이 보아 왔기 때문에 벡터화 된 메소드 IMO를 찾지 않고 자동으로 '적용'을 사용하여 문제를 해결할 생각이라면 사용자를 혼란스럽게 할 수 있습니다. 이것에보기 – EdChum