Package: tidyversetopandas
💪 Bringing the Power of tidyverse to Pandas!tidyversetopandasis a Python package designed for users familiar with R's tidyverse who are transitioning to Python. It bridges the syntax gap between R and Python by offering pandas equivalents to popular tidyverse functions. This package is particularly beneficial for data scientists and analysts who seek to leverage pandas' robust capabilities with the familiar syntax of tidyverse.Installation:installationDocumentation:https://tidyversetopandas.readthedocs.io/en/latest/example.htmlSource code:https://github.com/UBC-MDS/TidyverseToPandasBug reports:https://github.com/UBC-MDS/TidyverseToPandas/issues🐍 Fitting into the Python EcosystemWhile pandas is a powerful tool for data manipulation in Python, it can be challenging for those accustomed to R's tidyverse syntax.tidyversetopandasis unique in its approach to blend these two worlds. In the Python ecosystem,tidyversetopandasfits alongside packages that aim to incorporate tidyverse-like functionality into Python's data manipulation landscape, predominantly with pandas. The goal is to make pandas more accessible to those accustomed to tidyverse syntax.Two notable packages in this domain aretidypandasandsiuba. Both of them represent, similar totidyversetopandas, efforts to bridge the gap between R's tidyverse approach and Python's pandas library, offering users familiar with R's data manipulation tools a more comfortable transition to Python's data science ecosystem.🔑 Key Functions:mutate():Similar to its tidyverse counterpart, this function allows for the creation of new columns or modification of existing ones in a DataFrame.filter():Enables row-wise filtering, making it easier to sift through DataFrame based on specified conditions.select():Facilitates the selection of specific columns in a DataFrame, streamlining data manipulation and analysis.arrange():Offers sorting capabilities for DataFrame based on one or multiple columns.⚙️ Installationpipinstalltidyversetopandas🏃 UsageLets try to usetidyversetopandas.Import packageImport the package into your Python environment after installation:fromtidyversetopandasimporttidyversetopandasasttpLoading DataBegin by loading your data into a pandas dataframe. This package assumes that you have a dataframe ready for manipulation nameddf.MutateUsemutateto create new columns or modify existing ones. We can do this by writing the expression we want as a string.df = ttp.mutate(df, "b=b*2")FilterThefilterfunction is used to subset dataframes based on specified conditions. For instance, to select rows where 'A' is greater than 1 and 'B' is less than 6df = ttp.filter(df, "A > 1 and B < 6")ArrangeSort your dataframe witharrange. You can sort by multiple columns and specify ascending or descending order. For example, to sort by 'A' in ascending order and then by 'C'df = ttp.arrange(df, True, "A", "C")SelectTo keep only certain columns, use theselectfunction. For example, to keep only the column 'A'df = ttp.select(df, "A")📖 Developer Guide🛠️ Installation in Development ModeClone the repository and navigate to the project root directory.Create a virtual environment and activate it.condaenvcreate-fenvironment.yml
condaactivatetidyversetopandasMake surepoetryis installed. If not, install ithere. Once installed, run the following command to install the package in development mode.poetryinstall✅ TestingTo run the tests, use the following command:pytesttests/To run tests with coverage, use the following command:pytesttests/--cov=tidyversetopandasTo view the coverage report, use the following command:pytest--cov=tidyversetopandas--cov-reporthtmltests/This will create ahtmlcovdirectory containing the coverage report in HTML format. Open the index.html file in this directory with a web browser to view the detailed coverage report.🤝 ContributingInterested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.©️ Licensetidyversetopandaswas created by Thomas,Sophia,Lily,Nando. It is licensed under the terms of the MIT license.👥 ContributorsThomas JianSophia ZhaoLily TaoFarrandi HernandoCreditstidyversetopandaswas created withcookiecutterand thepy-pkgs-cookiecuttertemplate.