Python 如何对与';n';放入由';n';

Python 如何对与';n';放入由';n';,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我有一个不确定性列表,对应于一个特定的n值,我称之为表1。我想将这些不确定性添加到一个全面的大型数据表中,即表2,该表按n的升序进行数字排序。如何将不确定度与n的正确对应值联系起来? 我的第一个问题是,我的不确定性表是一个表,而不是一个数据帧。我有单独的数组,但不知道如何组合成一个数据帧 table1 = Table([xrow,yrow]) xrow表示表1中下面“n”的数组,yrow表示相应的错误 表1摘录: n error 1 0.0 2 0.004

我有一个不确定性列表,对应于一个特定的n值,我称之为表1。我想将这些不确定性添加到一个全面的大型数据表中,即表2,该表按n的升序进行数字排序。如何将不确定度与n的正确对应值联系起来? 我的第一个问题是,我的不确定性表是一个表,而不是一个数据帧。我有单独的数组,但不知道如何组合成一个数据帧

 table1 = Table([xrow,yrow])
xrow表示表1中下面“n”的数组,yrow表示相应的错误

表1摘录:

 n      error
 1      0.0
 2      0.00496
 3      0.0096
 4      0.00913
 6      0.00555
 8      0.00718
 10     0.00707
表2摘录:

    n   Energy      g   J   error
0   1   0.000000    1   0     NaN
1   2   1827.486200 1   0   NaN
2   3   3626.681500 1   0   NaN
3   4   5396.686500 1   0   NaN 
4   5   6250.149500 1   0   NaN
所以最终结果应该是这样的:

    n   Energy      g   J     error
0   1   0.000000    1   0     0
1   2   1827.486200 1   0     0.00496
2   3   3626.681500 1   0     0.0096
3   4   5396.686500 1   0     0.00913
4   5   6250.149500 1   0     NaN
i、 e.没有数据的部分保留为空白(例如,在上述情况下n=5)

我应该注意到,表2中有大量数据(大约30k),表1中有2.5k。

您可以这样使用:

    n   Energy      g   J     error
0   1   0.000000    1   0     0
1   2   1827.486200 1   0     0.00496
2   3   3626.681500 1   0     0.0096
3   4   5396.686500 1   0     0.00913
4   5   6250.149500 1   0     NaN
将熊猫作为pd导入
从io导入StringIO
表1=pd.read\U csv(StringIO(“”)
错误
1      0.0
2      0.00496
3      0.0096
4      0.00913
6      0.00555
8      0.00718
10 0.00707“”,sep=r“\s+”)
表2=pd.read_csv(StringIO(“”)
n能量gj误差
01 0.000000 10 NaN
112827.4862001南
23626.681500 1 0南
3 4 5396.686500 1 0南
4 5 6250.149500 1 0 NaN“),sep=r“\s+”)
表2[“错误”]=表1.merge(表2,on=“n”,how=“right”)[“错误”]
印刷品(表2)
输出:

   n     Energy  g  J    error
0  1     0.0000  1  0  0.00000
1  2  1827.4862  1  0  0.00496
2  3  3626.6815  1  0  0.00960
3  4  5396.6865  1  0  0.00913
4  5  6250.1495  1  0      NaN
编辑:使用应能更好地执行(请参见注释):

table2[“error”]=table2[“n”].map(table1.set_index('n')[“error']))

请使用正确的大写字母并格式化文本。它是不可读的。是的,刚刚更改了它。抱歉,这里的映射应该更好/更快,请检查dupe。@jezrael很酷,因为它没有加入可能不相关的值,而是按相关值的索引进行索引,并只将它们设置在所需的列中?是的,没错,因为如果需要只按一列映射,这里的映射最好。但如果需要多列映射,需要merge.ya,也可以自由添加映射解决方案。没关系!我成功地将table1转换为数据帧,.map工作起来就像做梦一样!