我正在尝试创建一个包含表单字符串的数据系列:
“%.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)