-
-
Notifications
You must be signed in to change notification settings - Fork 222
WIP: [Breaking refactor] Converting DanfoJs to typescript #235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Hi @risenW, which is the current process on this? I think we can divide the migration to TS by chunks in the current codebase 😄 |
Thanks for offering to help out here @JhennerTigreros So just give me a few more days to complete the Generic core class. Once done you can start working on the other classes. I'm doing some major rewrites in the way NDFrame data is created and stored, to solve some memory constraints in the old version. I'll update this issue when I'm done, and then you can start contributing here. |
|
@risenW out of curiosity, will data frames' types reflect their columns? TypeScript is one of the rare languages whose type system is sufficiently advanced to e.g. faithfully represent a SQL JOIN operation ( |
@LilRed I didn’t get your question. Care to rephrase? |
|
Disclaimer: I'm not acquainted with Danfo yet. A data frame could have type I believe it's possible in TypeScript to define a SQL JOIN-like operation such that if |
|
Ohh that's sound really good, I will wait until you finish the migration and start porting the correlation functions to TypeScript and tackle performance issues. I think we can use web assembly to certain heavily operations. What do you think? |
|
Closing this PR. It has been merged and released in the latest v1.0.0 |
This refactor converts the danfojs to use typescript. This is scheduled to be released as Danfo.Js v1.0 (stable), and will include a couple of breaking changes, bug fixes and new features.
Task and progress
Bug Fixes
axis=1==> row-wise operations andaxis=0==> column-wise operationNew Features
Inplacesupport for all mutating operationsdf.iloc({rows: df["count"].gt(5), columns: [0, 1]})df.loc({rows: df["count"].gt(5), columns: ["Count", "Size"]})df["count"] = [1,3,4,5]andandorlogical comparison support. E.gdf.loc({rows: df['Salary_in_1000'].gte(100)).and(df['Age'].gt(60)) })df.loc({rows: df['Salary_in_1000'].gte(100)).and(df['Age'].gt(60)) })