python – Pandas:映射数据系列(float到string),不删除尾随零

我正在尝试创建一个包含表单字符串的数据系列:

“%.2f / – %.2f”

使用两个熊猫数据系列(测量及其误差).以下是我实现此方法的方法:

df["F"] = df["Fint"].map(str) + " +/- " + df["Fint Err"].map(str)

但是,map(str)会从系列中的值中删除尾随零.

例如,来自’lalada’的来源’VLA 3′.

In[101]: df["Fint"]
Out[101]: 
Source  Lambda    Fint
VLA 2   6.0       0.15
        3.6       0.19
VLA 3   6.0       0.40
        3.6       0.29
In[102]: df["Fint"].map(str)
Out[102]: 
Source  Lambda
VLA 2   6.0       0.15
        3.6       0.19
VLA 3   6.0        0.4

如何阻止删除尾随零?

显然,你可以看到我实际上正在使用数据框(但是因为map是一个数据系列函数,我认为这会简化问题),如果有一种方法可以通过applymap实现这一点,我很乐意知道.

谢谢!

最佳答案 如果数据以浮点数开始,那么它没有“尾随零”.但是从你的例子来看,你真正想要的是让所有数字至少为4位数,如果需要则添加尾随零.试试这个:

# function that maps float->str, then pads with "0" up to length 4
to_4digit_str = lambda flt: str(flt).ljust(4,"0")


df["F"] = df["Fint"].map(str) + " +/- " + df["Fint Err"].map(to_4digit_str)
点赞