Extensions of pythonnet package to support pandas DataFrame conversions
Reason this release was yanked:
Not working
Project description
pandasnet
pandasnet_netstandard
is a python package build on top of pythonnet_netstandard
.
It provides additional data conversions for pandas
, numpy
and datetime
Prerequisites
- python 3.6 or higher.
- dotnet.
dotnet also provides scripts to proceed the installation by command line.
Installation
pip install pandasnet_netstandard
Features
To load the converter you need to import the package once in your python environment. If the dotnet clr isn't started yet through the pytonnet package the import will.
import pandasnet_netstandard
We construct a simple C# function to test conversion
using System;
using System.Collections.Generic;
namespace LibForTests
{
public class PandasNet
{
public static Dictionary<string, Array> BasicDataFrame(Dictionary<string, Array> df)
=> df;
}
}
We build this function into a library named LibForTests.dll
.
We load this library into our python environment then use it.
import clr
import pandasnet_netstandard # Load the converters
import pandas as pd
from datetime import datetime
# Load your dll
clr.AddReference('LibForTests.dll')
from LibForTests import PandasNet as pdnet
x = pd.DataFrame({
'A': [1, 2, 3],
'B': [1.23, 1.24, 1.22],
'C': ['foo', 'bar', 'other'],
'D': [datetime(2021, 1, 22), datetime(2021, 1, 23), datetime(2021, 1, 24)]
})
y = pdnet.BasicDataFrame(x)
print(y)
Below an exhausitve list of supported data convertions.
Python -> .Net
Python | .Net |
---|---|
datetime.datetime | DateTime |
datetime.date | DateTime |
datetime.timedelta | TimeSpan |
datetime.time | TimeSpan |
numpy.ndarray(dtype=bool_) | bool[] |
numpy.ndarray(dtype=int8) | sbyte[] |
numpy.ndarray(dtype=int16) | short[] |
numpy.ndarray(dtype=int32) | int[] |
numpy.ndarray(dtype=int64) | long[] |
numpy.ndarray(dtype=uint8) | byte[] |
numpy.ndarray(dtype=uint16) | ushort[] |
numpy.ndarray(dtype=uint32) | uint[] |
numpy.ndarray(dtype=uint64) | ulong[] |
numpy.ndarray(dtype=float32) | float[] |
numpy.ndarray(dtype=float64) | double[] |
numpy.ndarray(dtype=datetime64) | DateTime[] |
numpy.ndarray(dtype=timedelta64) | TimeSpan[] |
numpy.ndarray(dtype=str) | string[] |
pandas._libs.tslibs.timestamps.Timestamp | DateTime |
pandas._libs.tslibs.timedeltas.TimeDelta | TimeSpan |
pandas.core.series.Series | Array |
pandas.core.frame.DataFrame | Dictionary[string, Array] |
.Net -> Python
.Net | Python |
---|---|
DateTime | datetime.datetime |
TimeSpan | datetime.timedelta |
bool[] | numpy.ndarray(dtype=bool_) |
sbyte[] | numpy.ndarray(dtype=int8) |
short[] | numpy.ndarray(dtype=int16) |
int[] | numpy.ndarray(dtype=int32) |
long[] | numpy.ndarray(dtype=int64) |
byte[] | numpy.ndarray(dtype=uint8) |
ushort[] | numpy.ndarray(dtype=uint16) |
uint[] | numpy.ndarray(dtype=uint32) |
ulong[] | numpy.ndarray(dtype=uint64) |
float[] | numpy.ndarray(dtype=float32) |
double[] | numpy.ndarray(dtype=float64) |
DateTime[] | numpy.ndarray(dtype=datetime64) |
TimeSpan[] | numpy.ndarray(dtype=timedelta64) |
Dictionary[string, Array] | pandas.core.frame.DataFrame |
Contributing
Issue tracker: https://github.com/fdieulle/pandasnet/issues
If you want to checkout the project and propose your own contribution, you will need to setup it following few steps:
Create a virtual environment:
python -m venv venv
Activate your virtual environment:
venv/Scripts/activate
Install package dependencies
pip install -r requirements.txt
License
This project is open source under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pandasnet_netstandard-0.7.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f952d958419cf28b9c60b30e1564382dd4f07c9a6669299dc4b871cbdd9e777 |
|
MD5 | 79476d78ed8fa45711df1e598cb27ce1 |
|
BLAKE2b-256 | dedc358cb40721dea943fe078a8bc181d470a2b8379a99213f5de07ab253c64c |
Hashes for pandasnet_netstandard-0.7.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1285d6957bdc6c6fcc10046524f8b5578aaae7070d49849897415ed61ec9db49 |
|
MD5 | 60b01e707b0c45edfcb13673f4eb278b |
|
BLAKE2b-256 | 9c09cc3d43377c6afdd5da12399f98235f11bad932aabc84ddd56d1c75df1943 |