从熊猫数据框中的 ufloat 中提取名义偏差和标准偏差

Extract nominal and standard deviation from ufloat inside a panda dataframe

为了方便起见,我使用 pandas 数据帧来对大型数据集执行不确定性传播。

然后我想绘制我的数据集的标称值,但像 myDF['colLabel'].n 这样的东西不起作用。如何从数据框中提取标称偏差和标准偏差以绘制标称值和误差条?

这里有一个更一致的 MWE:

#%% MWE
import pandas as pd
from uncertainties import ufloat
import matplotlib.pyplot as plt

# building of a dataframe filled with ufloats
d = {'value1': [ufloat(1,.1),ufloat(3,.2),ufloat(5,.6),ufloat(8,.2)], 'value2': [ufloat(10,5),ufloat(50,2),ufloat(30,3),ufloat(5,1)]}
df = pd.DataFrame(data = d)

# plot of value2 vs. value1 with errobars.
plt.plot(x = df['value1'].n, y = df['value2'].n)
plt.errorbar(x = df['value1'].n, y = df['value2'].n, xerr = df['value1'].s, yerr = df['value2'].s)
# obviously .n and .s won't work.

我得到一个错误 AttributeError: 'Series' object has no attribute 'n',它建议从每个系列中提取值,有没有比通过将标称值和标准值分成两个单独的向量的循环更短的方法?

谢谢。

编辑:使用 the package 中的那些函数也不起作用:uncertainties.nominal_value(df['value2'])uncertainties.std_dev(df['value2'])

实际上用 unumpy.nominal_values(arr)unumpy.std_devs(arr) 函数来自不确定性。