Apply each value in a column against the whole column
Project description
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]
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
File details
Details for the file a_pandas_ex_apply_against_all-0.12.tar.gz
.
File metadata
- Download URL: a_pandas_ex_apply_against_all-0.12.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6af813a4084d8df1e1e7c5cafa36caec92d92a42cedec87385d710321b61e023 |
|
MD5 | 96dfd9841e38ac0659693f8905894023 |
|
BLAKE2b-256 | da48e79742f53c401daf82902884f5a3bbd22fb6bf35943031e7ebcdb4f6e285 |
File details
Details for the file a_pandas_ex_apply_against_all-0.12-py3-none-any.whl
.
File metadata
- Download URL: a_pandas_ex_apply_against_all-0.12-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfb2f321952a6a7d3df1b980b215cbc059fddd5b1eab8cebf9c34decde82b6b4 |
|
MD5 | d28d6302540fa36056f5d43f4272487b |
|
BLAKE2b-256 | 994e1ba3d80836ef13200ea08f3827a11a52a9df1cb2c217634e6c7fd5578a9a |