- Notifications
You must be signed in to change notification settings - Fork18.4k
Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
License
pandas-dev/pandas
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Testing | |
Package | |
Meta |
pandas is a Python package that provides fast, flexible, and expressive datastructures designed to make working with "relational" or "labeled" data botheasy and intuitive. It aims to be the fundamental high-level building block fordoing practical,real world data analysis in Python. Additionally, it hasthe broader goal of becomingthe most powerful and flexible open source dataanalysis / manipulation tool available in any language. It is already well onits way towards this goal.
- Main Features
- Where to get it
- Dependencies
- Installation from sources
- License
- Documentation
- Background
- Getting Help
- Discussion and Development
- Contributing to pandas
Here are just a few of the things that pandas does well:
- Easy handling ofmissing data (represented as
NaN
,NA
, orNaT
) in floating point as well as non-floating point data - Size mutability: columns can beinserted anddeleted from DataFrame and higher dimensionalobjects
- Automatic and explicitdata alignment: objects canbe explicitly aligned to a set of labels, or the user can simplyignore the labels and let
Series
,DataFrame
, etc. automaticallyalign the data for you in computations - Powerful, flexiblegroup by functionality to performsplit-apply-combine operations on data sets, for both aggregatingand transforming data
- Make iteasy to convert ragged,differently-indexed data in other Python and NumPy data structuresinto DataFrame objects
- Intelligent label-basedslicing,fancyindexing, andsubsetting oflarge data sets
- Intuitivemerging andjoining datasets
- Flexiblereshaping andpivoting ofdata sets
- Hierarchical labeling of axes (possible to have multiplelabels per tick)
- Robust IO tools for loading data fromflat files(CSV and delimited),Excel files,databases,and saving/loading data from the ultrafastHDF5 format
- Time series-specific functionality: date rangegeneration and frequency conversion, moving window statistics,date shifting and lagging
The source code is currently hosted on GitHub at:https://github.com/pandas-dev/pandas
Binary installers for the latest released version are available at thePythonPackage Index (PyPI) and onConda.
# condaconda install -c conda-forge pandas
# or PyPIpip install pandas
The list of changes to pandas between each release can be foundhere. For fulldetails, see the commit logs athttps://github.com/pandas-dev/pandas.
- NumPy - Adds support for large, multi-dimensional arrays, matrices and high-level mathematical functions to operate on these arrays
- python-dateutil - Provides powerful extensions to the standard datetime module
- pytz - Brings the Olson tz database into Python which allows accurate and cross platform timezone calculations
See thefull installation instructions for minimum supported versions of required, recommended and optional dependencies.
To install pandas from source you needCython in addition to the normaldependencies above. Cython can be installed from PyPI:
pip install cython
In thepandas
directory (same one where you found this file aftercloning the git repo), execute:
pip install.
or for installing indevelopment mode:
python -m pip install -ve. --no-build-isolation -Ceditable-verbose=true
See the full instructions forinstalling from source.
The official documentation is hosted onPyData.org.
Work onpandas
started atAQR (a quantitative hedge fund) in 2008 andhas been under active development since then.
For usage questions, the best place to go to isStackOverflow.Further, general questions and discussions can also take place on thepydata mailing list.
Most development discussions take place on GitHub in this repo, via theGitHub issue tracker.
Further, thepandas-dev mailing list can also be used for specialized discussions or design issues, and aSlack channel is available for quick development related questions.
There are also frequentcommunity meetings for project maintainers open to the community as well as monthlynew contributor meetings to help support new contributors.
Additional information on the communication channels can be found on thecontributor community page.
All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.
A detailed overview on how to contribute can be found in thecontributing guide.
If you are simply looking to start working with the pandas codebase, navigate to theGitHub "issues" tab and start looking through interesting issues. There are a number of issues listed underDocs andgood first issue where you could start out.
You can also triage issues which may include reproducing bug reports, or asking for vital information such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is tosubscribe to pandas on CodeTriage.
Or maybe through using pandas you have an idea of your own or are looking for something in the documentation and thinking ‘this can be improved’...you can do something about it!
Feel free to ask questions on themailing list or onSlack.
As contributors and maintainers to this project, you are expected to abide by pandas' code of conduct. More information can be found at:Contributor Code of Conduct
About
Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more