Python sas中的双向查找
假设我有一个(9000x9000)表,如下所示:Python sas中的双向查找,python,sas,Python,Sas,假设我有一个(9000x9000)表,如下所示: zone 304 305 306 307 308 ... 001 1 2 8 9 12 ... 002 6 8 3 7 1 ... 003 4 8 1 12 9 ... 004 2 7 3 16 34 ... ... 主数据表如下所示: package # weight origin de
zone 304 305 306 307 308 ...
001 1 2 8 9 12 ...
002 6 8 3 7 1 ...
003 4 8 1 12 9 ...
004 2 7 3 16 34 ...
...
主数据表如下所示:
package # weight origin destination zone
123 2oz 004 305 7 to be inputted here
.
.
.
我需要SAS输出对应于给定有序对的“区域”。我担心唯一的方法是使用某种类型的循环。例如,在上面的示例中,起始值来自行标签,目标值来自列标签。交点是我需要指定给“区域”的目标值
使用python数据争用库的解决方案也可以
此外,9000x9000表是一个Excel CSV文件 我的方法:
Key1 Key2 Value
001 304 1
001 305 2
...
Key1 Key2 Value
001 304 1
001 305 2
...
67
您可以使用,它有一个内置函数来读取excel文档:
因此,对于此文件:
输出:
67
如果使用矩阵,查找时间是恒定的,尽管它有很大的内存开销。如果将CSV作为SAS数据集读取,为什么不能使用“select from where=”运行PROC SQL?如果使用矩阵,查找时间是恒定的,尽管它有很大的内存开销。如果将CSV作为SAS数据集读取,为什么不能使用“select from where=”运行PROC SQL“select from where=“?我要将输出值保存到csv文件中的另一列如何将数据转换为您建议的选项2?最左边的列和顶行有一个通用名称”区域3“。但是您需要查找的值来自哪里?这是你问题中遗漏的部分。您可以使用PROC transpose:)转换数据。有序对的值将来自OPI中引用的主数据表。我要将输出值保存到csv文件中的另一列。我如何转换数据,使其看起来像您建议的选项2?最左边的列和最上面的行有一个共同的名称“Zone3”。但是您需要查找的值来自哪里?这是你问题中遗漏的部分。您可以使用PROC transpose:)对数据进行转置。有序对的值将来自OPS中引用的主数据表。如果我将文件保存为csv,这将起作用,如果列/行标签不是整数,但stringsIt将起作用,只要您没有重复的列/行名称。Pandas确实有一个
read_csv()
函数,如果我将文件另存为csv,该函数也会起作用,如果列/行标签不是整数,但stringsIt也会起作用,只要没有重复的列/行名称。熊猫也有一个read\u csv()
功能