{"action":"created","issue":{"url":"https://api.github.com/repos/biocore/scikit-bio/issues/848","labels_url":"https://api.github.com/repos/biocore/scikit-bio/issues/848/labels{/name}","comments_url":"https://api.github.com/repos/biocore/scikit-bio/issues/848/comments","events_url":"https://api.github.com/repos/biocore/scikit-bio/issues/848/events","html_url":"https://github.com/biocore/scikit-bio/issues/848","id":57953400,"number":848,"title":"Contingency Table API","user":{"login":"ebolyen","id":3976804,"avatar_url":"https://avatars.githubusercontent.com/u/3976804?v=3","gravatar_id":"","url":"https://api.github.com/users/ebolyen","html_url":"https://github.com/ebolyen","followers_url":"https://api.github.com/users/ebolyen/followers","following_url":"https://api.github.com/users/ebolyen/following{/other_user}","gists_url":"https://api.github.com/users/ebolyen/gists{/gist_id}","starred_url":"https://api.github.com/users/ebolyen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebolyen/subscriptions","organizations_url":"https://api.github.com/users/ebolyen/orgs","repos_url":"https://api.github.com/users/ebolyen/repos","events_url":"https://api.github.com/users/ebolyen/events{/privacy}","received_events_url":"https://api.github.com/users/ebolyen/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/biocore/scikit-bio/labels/API","name":"API","color":"c7def8"},{"url":"https://api.github.com/repos/biocore/scikit-bio/labels/chapter","name":"chapter","color":"d4c5f9"},{"url":"https://api.github.com/repos/biocore/scikit-bio/labels/discussion","name":"discussion","color":"006b75"},{"url":"https://api.github.com/repos/biocore/scikit-bio/labels/on%20deck","name":"on deck","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-02-17T17:20:06Z","updated_at":"2015-02-18T05:52:04Z","closed_at":null,"body":"This will be a place to discuss the specific features that a contingency table should be able to support and what that API will looks like."},"comment":{"url":"https://api.github.com/repos/biocore/scikit-bio/issues/comments/74816743","html_url":"https://github.com/biocore/scikit-bio/issues/848#issuecomment-74816743","issue_url":"https://api.github.com/repos/biocore/scikit-bio/issues/848","id":74816743,"user":{"login":"mortonjt","id":4184797,"avatar_url":"https://avatars.githubusercontent.com/u/4184797?v=3","gravatar_id":"","url":"https://api.github.com/users/mortonjt","html_url":"https://github.com/mortonjt","followers_url":"https://api.github.com/users/mortonjt/followers","following_url":"https://api.github.com/users/mortonjt/following{/other_user}","gists_url":"https://api.github.com/users/mortonjt/gists{/gist_id}","starred_url":"https://api.github.com/users/mortonjt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mortonjt/subscriptions","organizations_url":"https://api.github.com/users/mortonjt/orgs","repos_url":"https://api.github.com/users/mortonjt/repos","events_url":"https://api.github.com/users/mortonjt/events{/privacy}","received_events_url":"https://api.github.com/users/mortonjt/received_events","type":"User","site_admin":false},"created_at":"2015-02-18T05:52:04Z","updated_at":"2015-02-18T05:52:04Z","body":"That makes sense.  \r\n\r\nI do agree with @ebolyen .  It would be wise not to rush through this.\r\n\r\nAt this point, I'm willing to buy that pandas may be the way to go.\r\n\r\nAs far as API functions go, here are a few functions that I think would be key to implement.  I'm going to try to rank them by importance\r\n\r\n* ```read()```\r\n* ```write()```\r\n* ```apply( func, axis )```\r\n* ```filter(func, axis)```\r\n* ```groupby( id, axis )```\r\n* ```merge(table)```\r\n* ```collapse( func, axis )```\r\n* ```sort( axis, index [optional] )```\r\n* ```__str__()```\r\n\r\nNot sure about how indexing data/metadata should be handled.  Any thoughts?"}}