[{"data":1,"prerenderedAt":224},["ShallowReactive",2],{"project-24970653":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":67,"maker_in_thread":152,"shape":157,"grid":160,"attempts":187,"same_week":188,"maker_shows":41,"maker_hidden":216,"reader_version":217,"card":218},"24970653","dataclassframe","A Python container for dataclasses with multi-indexing and vector opps","title","Show HN: A Python container for dataclasses with multi-indexing and vector opps","https:\u002F\u002Fgithub.com\u002Fjoshlk\u002Fdataclassframe","github.com","joshlk",1604338281,2020,122,14,526,3028,18,"notable","languages","python library","library",[24,25,26,27,28],"python dataclass","pandas","dataframe","multi-indexing","vectorised operations","debated",0.042,{"positive":32,"neutral":33,"mixed":34,"critical":33},4,3,0,10,{"design":37,"docs":39,"idea":40},{"positive":38,"critical":34},1,{"positive":34,"critical":38},{"positive":33,"critical":41},2,[34,33,34,38,38,43,33,38,34,43,43,43,33,34],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":53,"time_to_build":44,"stack":57,"openness":66,"stage":66,"team_size":66},{"value":47,"source":48,"evidence":49},"Pandas DataFrames are hard to maintain in production code; dataclasses lack bulk operations","maker",[50],{"id":51,"by":11,"text":52},"24970654","I came to the idea as I wanted to use the ergonomics and efficiency of Pandas DataFrames but realised it makes messy production code thats hard to maintain. This package provides…",{"value":54,"source":48,"evidence":55},"Wanted Pandas ergonomics and efficiency without messy, hard-to-maintain production code",[56],{"id":51,"by":11,"text":52},[58,62],{"value":59,"source":48,"evidence":60},"Python",[61],{"id":51,"by":11,"text":52},{"value":63,"source":48,"evidence":64},"Pandas",[65],{"id":51,"by":11,"text":52},"unknown",{"praise":68,"objections":88,"requests":103,"questions":118,"alternatives":126},[69,84],{"value":70,"source":71,"evidence":72},"Combines dataclass typing with Pandas-style bulk operations","commenter",[73,76,80],{"id":74,"by":11,"text":75},"24971566","This is what this package aims to prevent. Providing rigidity to the data structure while giving the performance and API benefits of Pandas",{"id":77,"by":78,"text":79},"24972586","jackric","Excellent, I've been adding lots of dataclasses to a project that has some pandas parts. Love the additional productivity from pyright type checking and found the type ambiguity…",{"id":81,"by":82,"text":83},"24971788","hankdoupe","This is nice! I just implemented a pandas-like api for one of my projects, but I wound up building it on top of sortedcontainers: https:\u002F\u002Fparamtools.dev\u002Fapi\u002Fviewing-data.html I…",{"value":85,"source":71,"evidence":86},"Useful for typed data work with pyright",[87],{"id":77,"by":78,"text":79},[89,96],{"value":90,"source":71,"evidence":91},"Dataframes are too mutable and lead to kitchen-sink APIs",[92],{"id":93,"by":94,"text":95},"24971101","mplewis","I don't generally think that dataframes as a data interchange format are a good idea if you're looking to build long-term maintainable code. Their structure is too mutable – in…",{"value":97,"source":71,"evidence":98},"Title backslash and 'opps' abbreviation are confusing",[99],{"id":100,"by":101,"text":102},"24971811","unwind","Meta: that's a very random backslash in the title, very confusing in my opinion. It's just an abbreviated \"with\" so should be a forward slash (\"w\u002F\") or, better imo, written out…",[104,111],{"value":105,"source":71,"evidence":106},"Type checking for indexing by field values",[107],{"id":108,"by":109,"text":110},"24975869","adornedCupcake","I don't suppose there's type checking on indexing via fields... IE df.at(field_value) typechecks no matter what type the first field of the record class is.",{"value":112,"source":71,"evidence":113},"Support for nested structs",[114],{"id":115,"by":116,"text":117},"24975421","jvz","Looks interesting; thanks for writing this! Does it support nested structs? Sometimes that's more natural than a flat struct.",[119],{"value":120,"source":71,"evidence":121},"Does it support nested dataclasses?",[122,123],{"id":115,"by":116,"text":117},{"id":124,"by":11,"text":125},"24977972","Yes - you can use nested dataclasses. But you will loose some of the nice features",[127,138,145,148],{"value":128,"source":71,"evidence":129},"Apache Arrow",[130,134],{"id":131,"by":132,"text":133},"24972178","minimaxir","This appears to be encroaching on Apache Arrow's territory (which notably is headed by the creator of Pandas): https:\u002F\u002Farrow.apache.org\u002F",{"id":135,"by":136,"text":137},"24977233","igor47","mmm, i wouldn't say that. arrow is really meant as a lower-level utility with usability abstractions layered on top. for low-level tasks, like serializing\u002Fdeserializing, arrow is…",{"value":139,"source":71,"evidence":140},"MLflow",[141],{"id":142,"by":143,"text":144},"24971649","Jugurtha","One of the reasons this is interesting to me is that we quickly hit one of MLflow's limitations[0] in our machine learning platform[1]. Users collaborate in near real-time on…",{"value":63,"source":71,"evidence":146},[147],{"id":81,"by":82,"text":83},{"value":149,"source":71,"evidence":150},"sortedcontainers",[151],{"id":81,"by":82,"text":83},{"comments":32,"answered":38,"key":153},[154,155,156],{"id":51,"text":52},{"id":124,"text":125},{"id":74,"text":75},{"commenters":158,"max_depth":33,"maker_replies":32,"first_comment_mins":34,"lifespan_hours":159},11,16,[161,163,165,166,168,170,171,173,174,175,177,179,183,185],[51,34,34,162,11,38],"project\u002Fpositive\u002Fidea",[115,34,33,164,116,34],"project\u002Fneutral\u002Fdesign",[124,34,34,164,11,38],[100,38,38,167,101,34],"project\u002Fcritical\u002Fdocs",[131,41,38,169,132,34],"project\u002Fcritical\u002Fidea",[135,41,43,162,136,34],[142,33,33,172,143,34],"project\u002Fneutral\u002Fidea",[93,32,38,169,94,34],[74,32,34,162,11,38],[77,43,43,176,78,34],"project\u002Fpositive\u002Fdesign",[81,178,43,162,82,34],6,[180,181,43,162,182,34],"24976265",7,"karlicoss",[108,184,33,164,109,34],8,[186,184,34,164,11,38],"24977996",[],[189,193,198,203,207,211],{"id":190,"name":191,"points":192,"category":20},"24934722","What would mechanical programming look like?",719,{"id":194,"name":195,"points":196,"category":197},"24992517","Ugliest.app",441,"dev_tools",{"id":199,"name":200,"points":201,"category":202},"24929732","Nhost",210,"infrastructure",{"id":204,"name":205,"points":206,"category":20},"24978255","Kord",173,{"id":208,"name":209,"points":210,"category":197},"24929993","Grasp",123,{"id":212,"name":213,"points":214,"category":215},"24969993","Ninja Cookie",77,"security_privacy",false,"v2",{"id":219,"name":5,"line":6,"ai":216,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":220,"top":18,"kw":221,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":222,"url":9,"mix":223,"praise":70,"objection":90,"sub":21},24970653,0.04,[24,25,26,27,28],"03011531055530",[32,33,34,33],1793991018365]