Pandas 系列中的特殊字符串格式

special string formatting within a Series in Pandas

我正在寻找 Series.str.zfill(width) 方法的自定义版本。此方法在字符串中添加零,使字符串具有 width 个字符。我正在寻找可以做到这一点的东西,但可以使用任何字符(或字符序列),而不仅仅是使用 0。例如,从左侧根据需要多次添加“-”,以便字符串具有 width 个字符.

我认为您正在寻找以 widthfillchar 作为参数的 Series.str.rjust:

Filling left side of strings in the Series/Index with an additional character.

您可以像下面的 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 built-in rjust 方法而不是创建自己的方法!我的只是另一个 less-performant 示例。