Pandas:映射数据系列(浮点到字符串),不删除尾随零

时间:2015-10-09 20:51:28

标签: python numpy pandas

我正在尝试创建一个包含以下形式字符串的数据系列:

"%.2f +/- %.2f"

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

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

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

如果来源' VLA 3在6lambda'。

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实现这一点我很高兴知道。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果数据以浮点数开始,则它没有"尾随零"。但是从你的例子来看,你真正想要的是让所有数字至少为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)