import pandas as pd
data = {'value': [-1, 9, 10, -2]}
df = pd.DataFrame(data)
# Function to add leading zero
def custom_zfill(x):
if x < 0:
return '-' + str(abs(x)).zfill(2)
else:
return str(x).zfill(2)
df['value'] = df['value'].apply(custom_zfill)
print(df)
对于一个通用的方法,你可以先计算O * s * 的数量来填充(通过使用len/max),然后抓取sign,最后使用 f-strings 来形成一个字符串:
s = df["value"].astype(str).str.strip("-")
M = s.str.len().max() # maximum number of digits
df["value"] = [
f"{str(s).rstrip('1')}{v.zfill(M)}" for s, v in zip(np.sign(df["value"]), s)
]
3条答案
按热度按时间dxxyhpgq1#
请尝试以下操作:
d4so4syb2#
使用特定的正则表达式替换:
(-)?
-与可选前导字符-
匹配的第一个捕获组(\d)$
-第二个捕获的组,以匹配结尾处的单个数字$
zed5wv103#
对于一个通用的方法,你可以先计算
O
* s * 的数量来填充(通过使用len
/max
),然后抓取sign
,最后使用 f-strings 来形成一个字符串:输出量: