{"id":42804832,"url":"https://github.com/ihgazni2/dtable","last_synced_at":"2026-01-30T03:53:02.732Z","repository":{"id":57424412,"uuid":"159099722","full_name":"ihgazni2/dtable","owner":"ihgazni2","description":"A list of dict , each dict has the same keys.   Simple table for small datas .  ","archived":false,"fork":false,"pushed_at":"2019-09-28T04:28:59.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-01T11:18:44.785Z","etag":null,"topics":["data-table","data-tables"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ihgazni2.png","metadata":{"files":{"readme":"readme.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-26T02:40:52.000Z","updated_at":"2021-12-02T05:11:59.000Z","dependencies_parsed_at":"2022-09-07T03:40:10.259Z","dependency_job_id":null,"html_url":"https://github.com/ihgazni2/dtable","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ihgazni2/dtable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihgazni2%2Fdtable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihgazni2%2Fdtable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihgazni2%2Fdtable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihgazni2%2Fdtable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ihgazni2","download_url":"https://codeload.github.com/ihgazni2/dtable/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihgazni2%2Fdtable/sbom","scorecard":{"id":483083,"data":{"date":"2025-08-11","repo":{"name":"github.com/ihgazni2/dtable","commit":"af2a3bb3ae781c10065cc7b89b1e045f88fe2524"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/9 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-19T17:05:48.903Z","repository_id":57424412,"created_at":"2025-08-19T17:05:48.903Z","updated_at":"2025-08-19T17:05:48.903Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28900380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T03:36:35.398Z","status":"ssl_error","status_checked_at":"2026-01-30T03:36:34.949Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-table","data-tables"],"created_at":"2026-01-30T03:53:01.962Z","updated_at":"2026-01-30T03:53:02.725Z","avatar_url":"https://github.com/ihgazni2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. contents:: Table of Contents\n   :depth: 5\n\n\n*dtable*\n========\n- A list of dict ,\n- each dict has the same keys.\n- Simple table for small dataset\n\n\nInstallation\n------------\n\n    ::\n\n        $ pip3 install dtable\n\nLicense\n-------\n\n- MIT\n\nUsage\n=====\n\nimport\n------\n\n    ::\n        \n        import dtable.dtable as dtdt\n        from dtable.dtable import *\n\n0. qtbl2dtb\n-----------\n\n    ::\n    \n        \n                from qtable.qtable import *\n                from xdict.jprint import pobj,pdir,parr\n                qtbl\n                qtbl = Qtable(mat= np.arange(25).reshape((5,5)),index=['a','c','d','a','e'],columns=['one', 'two', 'three','one','four'])\n                parr(qtbl2dtb(qtbl))\n                \u003e\u003e\u003e qtbl\n                   one  two  three  one  four\n                a    0    1      2    3     4\n                c    5    6      7    8     9\n                d   10   11     12   13    14\n                a   15   16     17   18    19\n                e   20   21     22   23    24\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(qtbl2dtb(qtbl))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n            \n\n.. image:: ./images/qtbl2dtb.svg\n\n1. get_cnl\n----------\n\n    ::\n    \n        \n                get_cnl(dtb)\n                ['one', 'two', 'three', 'four']\n            \n\n.. image:: ./images/get_cnl.svg\n\n2. row2rvl\n----------\n\n    ::\n    \n        \n                row2rvl(dtb[0])\n                [3, 1, 2, 4]\n            \n\n.. image:: ./images/row2rvl.svg\n\n3. rvl2row\n----------\n\n    ::\n    \n        \n                cnl = ['one', 'two', 'three', 'four']\n                rvl2row([3, 1, 2, 4],cnl)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n            \n\n.. image:: ./images/rvl2row.svg\n\n4. dtb2mat\n----------\n\n    ::\n    \n        \n                dtb2mat(dtb)\n                \u003e\u003e\u003e parr(dtb2mat(dtb))\n                [3, 1, 2, 4]\n                [8, 6, 7, 9]\n                [13, 11, 12, 14]\n                [18, 16, 17, 19]\n                [23, 21, 22, 24]\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/dtb2mat.svg\n\n5. mat2dtb\n----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(mat2dtb(m,cnl))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/mat2dtb.svg\n\n6. dtb2qtbl\n-----------\n\n    ::\n    \n        \n                dtb2qtbl(dtb)\n                qtbl\n                \u003e\u003e\u003e dtb2qtbl(dtb)\n                   one  two  three  four\n                0    3    1      2     4\n                1    8    6      7     9\n                2   13   11     12    14\n                3   18   16     17    19\n                4   23   21     22    24\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/dtb2qtbl.svg\n\n7. init_dtb\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e init_dtb()\n                []\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(init_dtb(m,cnl))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(init_dtb(qtbl))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \n            \n\n.. image:: ./images/init_dtb.svg\n\n8. cvl2col\n----------\n\n    ::\n    \n        \n                ckey = 'three'\n                cvl = ['aa', 'bb', 'cc', 'dd', 'ee']\n                \u003e\u003e\u003e parr(cvl2col(ckey,cvl))\n                {'three': 'aa'}\n                {'three': 'bb'}\n                {'three': 'cc'}\n                {'three': 'dd'}\n                {'three': 'ee'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/cvl2col.svg\n\n9. get_ckey\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(col)\n                {'three': 'aa'}\n                {'three': 'bb'}\n                {'three': 'cc'}\n                {'three': 'dd'}\n                {'three': 'ee'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e get_ckey(col)\n                'three'\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_ckey.svg\n\n10. get_ckl\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(col)\n                {'three': 'aa'}\n                {'three': 'bb'}\n                {'three': 'cc'}\n                {'three': 'dd'}\n                {'three': 'ee'}\n                \u003e\u003e\u003e get_ckl(col)\n                ['three', 'three', 'three', 'three', 'three']\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_ckl.svg\n\n11. col2cvl\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(col)\n                {'three': 'aa'}\n                {'three': 'bb'}\n                {'three': 'cc'}\n                {'three': 'dd'}\n                {'three': 'ee'}\n                \u003e\u003e\u003e get_cvl(col)\n                ['aa', 'bb', 'cc', 'dd', 'ee']\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/col2cvl.svg\n\n12. get_colnums\n---------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                get_colnums(dtb)\n                3\n            \n\n.. image:: ./images/get_colnums.svg\n\n13. colarg2cvl\n--------------\n\n    ::\n    \n        \n            \n\n.. image:: ./images/colarg2cvl.svg\n\n14. colarg2col\n--------------\n\n    ::\n    \n        \n            \n\n.. image:: ./images/colarg2col.svg\n\n15. add_col\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e colname\n                'five'\n                \u003e\u003e\u003e col\n                [100, 200, 300, 400, 500]\n                \u003e\u003e\u003e parr(add_col(dtb,colname,col))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4, 'five': 100}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9, 'five': 200}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14, 'five': 300}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19, 'five': 400}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24, 'five': 500}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/add_col.svg\n\n16. add_cols\n------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4, 'five': 100}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9, 'five': 200}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14, 'five': 300}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19, 'five': 400}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24, 'five': 500}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(add_cols(dtb,\"six\",[6,6,6,6,6],\"seven\",[7,7,7,7,7]))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4, 'five': 100, 'six': 6, 'seven': 7}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9, 'five': 200, 'six': 6, 'seven': 7}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14, 'five': 300, 'six': 6, 'seven': 7}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19, 'five': 400, 'six': 6, 'seven': 7}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24, 'five': 500, 'six': 6, 'seven': 7}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/add_cols.svg\n\n17. rm_col\n----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(rm_col(dtb,'seven'))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4, 'five': 100, 'six': 6}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9, 'five': 200, 'six': 6}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14, 'five': 300, 'six': 6}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19, 'five': 400, 'six': 6}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24, 'five': 500, 'six': 6}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/rm_col.svg\n\n18. rm_cols\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(rm_cols(dtb,'three','five'))\n                {'one': 3, 'two': 1, 'four': 4, 'six': 6}\n                {'one': 8, 'two': 6, 'four': 9, 'six': 6}\n                {'one': 13, 'two': 11, 'four': 14, 'six': 6}\n                {'one': 18, 'two': 16, 'four': 19, 'six': 6}\n                {'one': 23, 'two': 21, 'four': 24, 'six': 6}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/rm_cols.svg\n\n19. get_cvl\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e get_cvl(dtb,'one')\n                [3, 8, 13, 18, 23]\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_cvl.svg\n\n20. get_col\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(get_col(dtb,'x'))\n                {'three': 'xx1'}\n                {'three': 'xx2'}\n                {'three': 'xx3'}\n                {'three': 'xx4'}\n                {'three': 'xx5'}\n                \u003e\u003e\u003e\n                \n            \n\n.. image:: ./images/get_col.svg\n\n21. get_cols\n------------\n\n    ::\n    \n        \n                #得到的是一张新子表\n                \u003e\u003e\u003e parr(get_cols(dtb,'one','two'))\n                {'one': 3, 'two': 1}\n                {'one': 8, 'two': 6}\n                {'one': 13, 'two': 11}\n                {'one': 18, 'two': 16}\n                {'one': 23, 'two': 21}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_cols.svg\n\n22. get_cvls\n------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(get_cvls(dtb,'x','y'))\n                ['xx1', 'yy1']\n                ['xx2', 'yy2']\n                ['xx3', 'yy3']\n                ['xx4', 'yy4']\n                ['xx5', 'yy5']\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_cvls.svg\n\n23. rename_col\n--------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'four': 4}\n                {'one': 8, 'two': 6, 'four': 9}\n                {'one': 13, 'two': 11, 'four': 14}\n                {'one': 18, 'two': 16, 'four': 19}\n                {'one': 23, 'two': 21, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(rename_col(dtb,'four',400))\n                {'one': 3, 'two': 1, 400: 4}\n                {'one': 8, 'two': 6, 400: 9}\n                {'one': 13, 'two': 11, 400: 14}\n                {'one': 18, 'two': 16, 400: 19}\n                {'one': 23, 'two': 21, 400: 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/rename_col.svg\n\n24. rename_cols\n---------------\n\n    ::\n    \n        \n                parr(dtb)\n                {'one': 3, 'two': 1, 400: 4}\n                {'one': 8, 'two': 6, 400: 9}\n                {'one': 13, 'two': 11, 400: 14}\n                {'one': 18, 'two': 16, 400: 19}\n                {'one': 23, 'two': 21, 400: 24}\n                \u003e\u003e\u003e\n                cns = ['one','two']\n                ncns = [1000,2000]\n                \u003e\u003e\u003e parr(rename_cols(dtb,cns,ncns))\n                {400: 4, 1000: 3, 2000: 1}\n                {400: 9, 1000: 8, 2000: 6}\n                {400: 14, 1000: 13, 2000: 11}\n                {400: 19, 1000: 18, 2000: 16}\n                {400: 24, 1000: 23, 2000: 21}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/rename_cols.svg\n\n25. swapcol\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {400: 4, 1000: 3, 2000: 1}\n                {400: 9, 1000: 8, 2000: 6}\n                {400: 14, 1000: 13, 2000: 11}\n                {400: 19, 1000: 18, 2000: 16}\n                {400: 24, 1000: 23, 2000: 21}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(swapcol(dtb,400,2000))\n                \u003e\u003e\u003e parr(swapcol(dtb,400,2000))\n                {400: 1, 1000: 3, 2000: 4}\n                {400: 6, 1000: 8, 2000: 9}\n                {400: 11, 1000: 13, 2000: 14}\n                {400: 16, 1000: 18, 2000: 19}\n                {400: 21, 1000: 23, 2000: 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/swapcol.svg\n\n26. repl_col\n------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {400: 1, 1000: 3, 2000: 4}\n                {400: 6, 1000: 8, 2000: 9}\n                {400: 11, 1000: 13, 2000: 14}\n                {400: 16, 1000: 18, 2000: 19}\n                {400: 21, 1000: 23, 2000: 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(repl_col(dtb,400,['a','b','c','d','e']))\n                {1000: 3, 2000: 4, 400: 'a'}\n                {1000: 8, 2000: 9, 400: 'b'}\n                {1000: 13, 2000: 14, 400: 'c'}\n                {1000: 18, 2000: 19, 400: 'd'}\n                {1000: 23, 2000: 24, 400: 'e'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(repl_col(dtb, 400,['aa','bb','cc','dd','ee'],\"three\"))\n                {1000: 3, 2000: 4, 'three': 'aa'}\n                {1000: 8, 2000: 9, 'three': 'bb'}\n                {1000: 13, 2000: 14, 'three': 'cc'}\n                {1000: 18, 2000: 19, 'three': 'dd'}\n                {1000: 23, 2000: 24, 'three': 'ee'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/repl_col.svg\n\n27. repl_cols\n-------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {1000: '3', 2000: '4', 'three': 'aa'}\n                {1000: '8', 2000: '9', 'three': 'bb'}\n                {1000: '13', 2000: '14', 'three': 'cc'}\n                {1000: '18', 2000: '19', 'three': 'dd'}\n                {1000: '23', 2000: '24', 'three': 'ee'}\n                \u003e\u003e\u003e\n                cns = [1000, 2000]\n                cols = [['x1','x2','x3','x4','x5'],['y1','y2','y3','y4','y5']]\n                parr(repl_cols(dtb,cns,cols))\n                \u003e\u003e\u003e parr(repl_cols(dtb,cns,cols))\n                {'three': 'aa', 1000: 'x1', 2000: 'y1'}\n                {'three': 'bb', 1000: 'x2', 2000: 'y2'}\n                {'three': 'cc', 1000: 'x3', 2000: 'y3'}\n                {'three': 'dd', 1000: 'x4', 2000: 'y4'}\n                {'three': 'ee', 1000: 'x5', 2000: 'y5'}\n                \u003e\u003e\u003e\n                cns = [1000, 2000]\n                cols = [['xx1','xx2','xx3','xx4','xx5'],['yy1','yy2','yy3','yy4','yy5']]\n                ncns = ['x','y']\n                \u003e\u003e\u003e parr(repl_cols(dtb,cns,cols,ncns))\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/repl_cols.svg\n\n28. get_rownums\n---------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e get_rownums(dtb)\n                5\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_rownums.svg\n\n29. get_row\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e get_row(dtb,3)\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_row.svg\n\n30. get_rvl\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e get_rvl(dtb,2)\n                ['cc', 'xx3', 'yy3']\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_rvl.svg\n\n31. get_rows\n------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(get_rows(dtb,[0,2,4]))\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_rows.svg\n\n32. get_rvls\n------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(get_rvls(dtb,[0,2,4]))\n                ['aa', 'xx1', 'yy1']\n                ['cc', 'xx3', 'yy3']\n                ['ee', 'xx5', 'yy5']\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/get_rvls.svg\n\n33. rowarg2rvl\n--------------\n\n    ::\n    \n        \n            \n\n.. image:: ./images/rowarg2rvl.svg\n\n34. rowarg2row\n--------------\n\n    ::\n    \n        \n            \n\n.. image:: ./images/rowarg2row.svg\n\n35. append_row\n--------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(append_row(dtb,['ff', 'xx6','yy6']))\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(append_row(dtb,{'three': 'gg', 'x': 'xx7', 'y': 'yy7'}))\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/append_row.svg\n\n36. append_rows\n---------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(append_rows(dtb,[1,2,3],[11,22,33]))\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                {'three': 1, 'x': 2, 'y': 3}\n                {'three': 11, 'x': 22, 'y': 33}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/append_rows.svg\n\n37. prepend_row\n---------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                {'three': 1, 'x': 2, 'y': 3}\n                {'three': 11, 'x': 22, 'y': 33}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(prepend_row(dtb,[0,0,0]))\n                {'three': 0, 'x': 0, 'y': 0}\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                {'three': 1, 'x': 2, 'y': 3}\n                {'three': 11, 'x': 22, 'y': 33}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/prepend_row.svg\n\n38. prepend_rows\n----------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'three': 0, 'x': 0, 'y': 0}\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                {'three': 1, 'x': 2, 'y': 3}\n                {'three': 11, 'x': 22, 'y': 33}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(prepend_rows(dtb,[100,200,300],[0,0,0]))\n                {'three': 100, 'x': 200, 'y': 300}\n                {'three': 0, 'x': 0, 'y': 0}\n                {'three': 0, 'x': 0, 'y': 0}\n                {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}\n                {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}\n                {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}\n                {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}\n                {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}\n                {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}\n                {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}\n                {'three': 1, 'x': 2, 'y': 3}\n                {'three': 11, 'x': 22, 'y': 33}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/prepend_rows.svg\n\n39. rmrow\n---------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(rmrow(dtb,2))\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/rmrow.svg\n\n40. rmrows\n----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(rmrows(dtb,[0,2]))\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/rmrows.svg\n\n41. insert_row\n--------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(insert_row(dtb,1,[77,88,99,100]))\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 77, 'two': 88, 'three': 99, 'four': 100}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/insert_row.svg\n\n42. insert_rows\n---------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 77, 'two': 88, 'three': 99, 'four': 100}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(insert_rows(dtb,1,['a','b','c','d'],['aa','bb','cc','dd']))\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 'a', 'two': 'b', 'three': 'c', 'four': 'd'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': 77, 'two': 88, 'three': 99, 'four': 100}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/insert_rows.svg\n\n43. repl_row\n------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 'a', 'two': 'b', 'three': 'c', 'four': 'd'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': 77, 'two': 88, 'three': 99, 'four': 100}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(repl_row(dtb,3,[\"uuu\",\"vvv\",\"www\",\"xxx\"]))\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 'a', 'two': 'b', 'three': 'c', 'four': 'd'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/repl_row.svg\n\n44. repl_rows\n-------------\n\n    ::\n    \n        \n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(dtb)\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 'a', 'two': 'b', 'three': 'c', 'four': 'd'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(repl_rows(dtb,[0,4],[\"@\",\"@@\",\"@@@\",\"@@@@\"],[\"\u0026\",\"\u0026\u0026\",\"\u0026\u0026\u0026\",\"\u0026\u0026\u0026\u0026\"]))\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/repl_rows.svg\n\n45. swaprow\n-----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(dtb)\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(swaprow(dtb,0,3))\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/swaprow.svg\n\n46. crop\n--------\n\n    ::\n    \n        \n                crop will not change the original dtb\n                \u003e\u003e\u003e parr(dtb)\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(crop(dtb,1,'two',3,'three'))\n                {'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026'}\n                {'two': 'bb', 'three': 'cc'}\n                {'two': '@@', 'three': '@@@'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/crop.svg\n\n47. flipud\n----------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(flipud(dtb))\n                {'one': '23', 'two': '21', 'three': '22', 'four': '24'}\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/flipud.svg\n\n48. subtb\n---------\n\n    ::\n    \n        \n                \u003e\u003e\u003e parr(dtb)\n                {'one': '23', 'two': '21', 'three': '22', 'four': '24'}\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(subtb(dtb,[0,2,4],['three','four']))\n                {'three': '22', 'four': '24'}\n                {'three': 'cc', 'four': 'dd'}\n                {'three': 'www', 'four': 'xxx'}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/subtb.svg\n\n49. transpose\n-------------\n\n    ::\n    \n        \n                transpose will lost key-info\n                \u003e\u003e\u003e parr(dtb)\n                {'one': '23', 'two': '21', 'three': '22', 'four': '24'}\n                {'one': '@', 'two': '@@', 'three': '@@@', 'four': '@@@@'}\n                {'one': 'aa', 'two': 'bb', 'three': 'cc', 'four': 'dd'}\n                {'one': '\u0026', 'two': '\u0026\u0026', 'three': '\u0026\u0026\u0026', 'four': '\u0026\u0026\u0026\u0026'}\n                {'one': 'uuu', 'two': 'vvv', 'three': 'www', 'four': 'xxx'}\n                \u003e\u003e\u003e parr(transpose(dtb))\n                {0: '23', 1: '@', 2: 'aa', 3: '\u0026', 4: 'uuu'}\n                {0: '21', 1: '@@', 2: 'bb', 3: '\u0026\u0026', 4: 'vvv'}\n                {0: '22', 1: '@@@', 2: 'cc', 3: '\u0026\u0026\u0026', 4: 'www'}\n                {0: '24', 1: '@@@@', 2: 'dd', 3: '\u0026\u0026\u0026\u0026', 4: 'xxx'}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/transpose.svg\n\n50. rslctr\n----------\n\n    ::\n    \n        \n                #cond_func(row,*oargs)\n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e ndtb = rslctr(dtb,lambda row:row['two']%2==0)\n                \u003e\u003e\u003e parr(ndtb)\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                \u003e\u003e\u003e\n        \n            \n\n.. image:: ./images/rslctr.svg\n\n51. rslctri\n-----------\n\n    ::\n    \n        \n                #ri  row-index\n                #cond_func(ri,row,*oargs)\n                \u003e\u003e\u003e ndtb = rslctri(dtb,lambda i,row:(row['two']%2==1)and(i\u003e2))\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e ndtb = rslctri(dtb,lambda i,row:(row['two']%2==1)and(i\u003e2))\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(ndtb)\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \n            \n\n.. image:: ./images/rslctri.svg\n\n52. slctr\n---------\n\n    ::\n    \n        \n                #colnames   returned colnames\n                #slctr(dtb,colnames,cond_func,*oargs)\n                #cond_func(row,*oargs)\n                \n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e ndtb = slctr(dtb,['one','two'],lambda row:row['two']%2==0)\n                \u003e\u003e\u003e\n                \u003e\u003e\u003e parr(ndtb)\n                {'one': 8, 'two': 6}\n                {'one': 18, 'two': 16}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/slctr.svg\n\n53. slctri\n----------\n\n    ::\n    \n        \n                #colnames   returned colnames\n                #slctr(dtb,colnames,cond_func,*oargs)\n                #cond_func(row,*oargs)\n                parr(dtb)\n                ndtb = slctri(dtb,['one','two'],lambda i,row:(row['two']%2==1)and(i\u003e2))\n                parr(ndtb)\n                \u003e\u003e\u003e parr(dtb)\n                {'one': 3, 'two': 1, 'three': 2, 'four': 4}\n                {'one': 8, 'two': 6, 'three': 7, 'four': 9}\n                {'one': 13, 'two': 11, 'three': 12, 'four': 14}\n                {'one': 18, 'two': 16, 'three': 17, 'four': 19}\n                {'one': 23, 'two': 21, 'three': 22, 'four': 24}\n                \u003e\u003e\u003e ndtb = slctri(dtb,['one','two'],lambda i,row:(row['two']%2==1)and(i\u003e2))\n                \u003e\u003e\u003e parr(ndtb)\n                {'one': 23, 'two': 21}\n                \u003e\u003e\u003e\n            \n\n.. image:: ./images/slctri.svg\n\n\n\nWords\n=====\n    \n    ::\n\n        #qtbl           qtable                                      \n        #dtb            row-dict-list\n        #cnl            col-name-list                          \n        #mat            mat                                         \n        #row            row-dict\n        #rvl            row-value-list\n        #rowarg         row | rvl\n        #col            col-dict-list\n        #ckey           col-key\n        #colname        colname\u003csame as ckey\u003e\n        #ckl            col-key-list\n        #cvl            col-value-list\n        #colarg         col | cvl\n        #columns        col-name-list\u003csame as colname\u003e            \n        #index          row-index-list\n        #ri             row-index\n        #ci             col-index\n        #loc            (ri,ci)\n        #nloc           (ri,ckey)\n        #ele            element\u003c{ckey:value}\u003e\n        #v              value\n        #eles-list      \n        #rslct\u003c\u003e        return(\u003crows\u003e)-select-rows-via-cond_func(\u003c\u003e)\n        #cslct\u003c\u003e        return(\u003ccols\u003e)-select-cols-via-cond_func(\u003c\u003e)\n        #eslct\u003c\u003e        return(\u003celes\u003e)-select-eles-list-via-cond_func(\u003c\u003e)\n        #lslct\u003c\u003e        return(\u003clocs\u003e)-select-locs-list-via-cond_func(\u003c\u003e)\n        #nlslct\u003c\u003e       return(\u003cnlocs\u003e)-select-nlocs-list-via-cond_func(\u003c\u003e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihgazni2%2Fdtable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fihgazni2%2Fdtable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihgazni2%2Fdtable/lists"}