我正在尝试创建一个包含以下形式字符串的数据系列:
"%.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实现这一点我很高兴知道。
谢谢!
答案 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)