Python 如何对与';n';放入由';n';
我有一个不确定性列表,对应于一个特定的n值,我称之为表1。我想将这些不确定性添加到一个全面的大型数据表中,即表2,该表按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
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工作起来就像做梦一样!