我正在使用uncertainties模块沿着Pandas。目前,我能够输出的dataframe与不确定性一起到一个电子表格。我的主要目标是在相邻列中编写具有不确定性的 Dataframe 。但是如何访问 Dataframe 中的标称值或不确定性。MWE如下所示。
当前输出
| B| B |
| --| ------------ |
| 75.4+/-0.9| 75.4+/-0.9 |
| 53.12+/-0.21| 53.12+/-0.21 |
| 89.51+/-0.32| 89.51+/-0.32 |
| 10.6+/-0.6| 10.6+/-0.6 |
| 39.03+/-0.08| 39.03+/-0.08 |
| 44.61+/-0.35| 44.61+/-0.35 |
| 37.7+/-0.6| 37.7+/-0.6 |
| 50.0+/-0.8| 50.0+/-0.8 |
| 3.1+/-0.5| 3.1+/-0.5 |
| 21.8+/-0.8| 21.8+/-0.8 |
所需输出
| +/-|B| +/-| +/- |
| --|--|--| ------------ |
| 63.2 0.9| 75.4| 0.9| 0.9 |
| 0.05|五十三点一二|零点二一| 0.21 |
| 4.1 0.4|八十九点五一|零点三二| 0.32 |
| 28.2 0.5|十点六|0.6| 0.6 |
| 25.8 0.9|三十九点零三分|零点零八| 0.08 |
| 零点零九|四十四点六一|零点三五| 0.35 |
| 0.13|三十七点七分|0.6| 0.6 |
| 2.4 0.5|五十|0.8| 0.8 |
| 0.92零点二一|3.1| 0.5| 0.5 |
| 零点三四|二十一点八|0.8| 0.8 |
MWE
from uncertainties import unumpy
import pandas as pd
import numpy as np
A_n = 100 * np.random.rand(10)
A_s = np.random.rand(10)
B_n = 100 * np.random.rand(10)
B_s = np.random.rand(10)
AB = pd.DataFrame({'A':unumpy.uarray(A_n, A_s), 'B': unumpy.uarray(B_n, B_s)})
AB_writer = pd.ExcelWriter('A.xlsx', engine = 'xlsxwriter', options={'strings_to_numbers': True})
AB.to_excel(AB_writer, sheet_name = 'Data', index=False, na_rep='nan')
AB_writer.close()
字符串
更新
我忘了提到AB不是如MWE中所示创建的,而是MWE中没有给出的先前计算的结果。我为自己创造了一个AB。简而言之,我无法访问A和B的标称值和不确定值。
4条答案
按热度按时间hwamh0ep1#
您可以Map列以获得所需的结果。下面的代码Map
A
列(确保不要将两列分配给同一列键'+/-'
)字符串
b4qexyjb2#
将它们分成不同的列:
字符串
slhcrj9b3#
您可以使用
str.split()
将每列拆分为一列主值和一列不确定度,如下所示:字符串
不建议在同一数据框中有两列具有相同列标签。在这里,我们将
+/-
列与它们各自的源列名一起命名,以便区分它们。这里,我们还使用
.sort_index()
对列名进行排序,以使相关列彼此相邻。结果:
型
ubbxdtey4#
所有的答案都没有考虑到OP正在使用uncertainties包。问题from this post或the user manual的正确答案是使用
字符串
和/或
型
其中arr是pandas列