Apply each value in a column against the whole column
pip install a-pandas-ex-apply-against-all
from a_pandas_ex_apply_against_all import pd_add_apply_each
import pandas as pd
pd_add_apply_each()
df = pd.read_csv(
"https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv"
)
df1 = df.PassengerId.s_apply_each(
expression="str(x) + str(y)", # use always x/y in your expression
exception_value=pd.NA,
diagonal_value=pd.NA,
print_exception=True,
)
print(df1)
0 1 2 3 4 ... 886 887 888 889 890
0 <NA> 12 13 14 15 ... 1887 1888 1889 1890 1891
1 21 <NA> 23 24 25 ... 2887 2888 2889 2890 2891
2 31 32 <NA> 34 35 ... 3887 3888 3889 3890 3891
3 41 42 43 <NA> 45 ... 4887 4888 4889 4890 4891
4 51 52 53 54 <NA> ... 5887 5888 5889 5890 5891
.. ... ... ... ... ... ... ... ... ... ... ...
886 8871 8872 8873 8874 8875 ... <NA> 887888 887889 887890 887891
887 8881 8882 8883 8884 8885 ... 888887 <NA> 888889 888890 888891
888 8891 8892 8893 8894 8895 ... 889887 889888 <NA> 889890 889891
889 8901 8902 8903 8904 8905 ... 890887 890888 890889 <NA> 890891
890 8911 8912 8913 8914 8915 ... 891887 891888 891889 891890 <NA>
[891 rows x 891 columns]
# If you use a non-built-in function, you have to pass it as an argument, and use it as "func" in your expression
# An example using shapely (merging different polygons)
from shapely.ops import unary_union
import shapely
polyshape = []
for k in range(10):
xmin = k * 10 + 5
ymin = k * 10 + 5
xmax = k * 20 + 10
ymax = k * 20 + 10
coordsalls = [[xmin, ymin], [xmax, ymin], [xmax, ymax], [xmin, ymax], [xmin, ymin]]
po = shapely.geometry.Polygon(coordsalls)
polyshape.append(po)
df2 = pd.DataFrame(polyshape)
df2
Out[7]:
0
0 POLYGON ((5 5, 10 5, 10 10, 5 10, 5 5))
1 POLYGON ((15 15, 30 15, 30 30, 15 30, 15 15))
2 POLYGON ((25 25, 50 25, 50 50, 25 50, 25 25))
3 POLYGON ((35 35, 70 35, 70 70, 35 70, 35 35))
4 POLYGON ((45 45, 90 45, 90 90, 45 90, 45 45))
5 POLYGON ((55 55, 110 55, 110 110, 55 110, 55 55))
6 POLYGON ((65 65, 130 65, 130 130, 65 130, 65 65))
7 POLYGON ((75 75, 150 75, 150 150, 75 150, 75 75))
8 POLYGON ((85 85, 170 85, 170 170, 85 170, 85 85))
9 POLYGON ((95 95, 190 95, 190 190, 95 190, 95 95))
df1 = df2[0].s_apply_each(
expression="func([x,y]) if x.intersects(y) else x", # use always x/y in your expression
func=unary_union,
exception_value=pd.NA,
diagonal_value=pd.NA,
print_exception=True,
ignore_exceptions=True
)
Out[8]:
0 ... 9
0 <NA> ... POLYGON ((5 5, 10 5, 10 10, 5 10, 5 5))
1 POLYGON ((15 15, 30 15, 30 30, 15 30, 15 15)) ... POLYGON ((15 15, 30 15, 30 30, 15 30, 15 15))
2 POLYGON ((25 25, 50 25, 50 50, 25 50, 25 25)) ... POLYGON ((25 25, 50 25, 50 50, 25 50, 25 25))
3 POLYGON ((35 35, 70 35, 70 70, 35 70, 35 35)) ... POLYGON ((35 35, 70 35, 70 70, 35 70, 35 35))
4 POLYGON ((45 45, 90 45, 90 90, 45 90, 45 45)) ... POLYGON ((45 45, 90 45, 90 90, 45 90, 45 45))
5 POLYGON ((55 55, 110 55, 110 110, 55 110, 55 55)) ... POLYGON ((110 55, 55 55, 55 110, 95 110, 95 19...
6 POLYGON ((65 65, 130 65, 130 130, 65 130, 65 65)) ... POLYGON ((130 65, 65 65, 65 130, 95 130, 95 19...
7 POLYGON ((75 75, 150 75, 150 150, 75 150, 75 75)) ... POLYGON ((150 75, 75 75, 75 150, 95 150, 95 19...
8 POLYGON ((85 85, 170 85, 170 170, 85 170, 85 85)) ... POLYGON ((170 85, 85 85, 85 170, 95 170, 95 19...
9 POLYGON ((95 95, 190 95, 190 190, 95 190, 95 95)) ... <NA>
[10 rows x 10 columns]
Metadata
Release files for a-pandas-ex-apply-against-all 0.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| a_pandas_ex_apply_against_all-0.12.tar.gz | 5.6 kB | Without provenance | Details for a_pandas_ex_apply_against_all-0.12.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| a_pandas_ex_apply_against_all-0.12-py3-none-any.whl | Python 3 | none | any | Details for a_pandas_ex_apply_against_all-0.12-py3-none-any.whl |
Total release size: 13.0 kB
Release files / a_pandas_ex_apply_against_all-0.12.tar.gz
| Download URL | a_pandas_ex_apply_against_all-0.12.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6af813a4084d8df1e1e7c5cafa36caec92d92a42cedec87385d710321b61e023
|
|
BLAKE2b-256 checksum How to use checksums |
da48e79742f53c401daf82902884f5a3bbd22fb6bf35943031e7ebcdb4f6e285
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / a_pandas_ex_apply_against_all-0.12-py3-none-any.whl
| Download URL | a_pandas_ex_apply_against_all-0.12-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cfb2f321952a6a7d3df1b980b215cbc059fddd5b1eab8cebf9c34decde82b6b4
|
|
BLAKE2b-256 checksum How to use checksums |
994e1ba3d80836ef13200ea08f3827a11a52a9df1cb2c217634e6c7fd5578a9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Security for a-pandas-ex-apply-against-all 0.12
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.