এক-liners,! প্লাস বিগ-ডেটা লোকের জন্য কিছু পারফরম্যান্স পয়েন্টার।
pandas.DataFrame
X দ্রাঘিমাংশ এবং এর মতো y অক্ষাংশ রয়েছে এমন একটি দেওয়া হয়েছে:
df.head()
x y
0 229.617902 -73.133816
1 229.611157 -73.141299
2 229.609825 -73.142795
3 229.607159 -73.145782
4 229.605825 -73.147274
এর রূপান্তর করা যাক pandas.DataFrame
একটি মধ্যে geopandas.GeoDataFrame
নিম্নরূপ:
লাইব্রেরি আমদানি এবং সুদৃ speed় গতিবেগ :
import geopandas as gpd
import shapely
shapely.speedups.enable() # enabled by default from version 1.6.0
কোড + বেঞ্চমার্ক সময়গুলিতে আমি পরীক্ষিত ডেটাসেটের আশেপাশে পড়ে থাকি:
#Martin's original version:
#%timeit 1.87 s ± 7.03 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
gdf = gpd.GeoDataFrame(df.drop(['x', 'y'], axis=1),
crs={'init': 'epsg:4326'},
geometry=[shapely.geometry.Point(xy) for xy in zip(df.x, df.y)])
#Pandas apply method
#%timeit 8.59 s ± 60.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
gdf = gpd.GeoDataFrame(df.drop(['x', 'y'], axis=1),
crs={'init': 'epsg:4326'},
geometry=df.apply(lambda row: shapely.geometry.Point((row.x, row.y)), axis=1))
ব্যবহার pandas.apply
করা আশ্চর্যজনকভাবে ধীরে ধীরে, তবে কিছু অন্যান্য কর্মপ্রবাহের জন্য এটি আরও ভাল ফিট হতে পারে (যেমন ড্যাস্ক লাইব্রেরি ব্যবহার করে বড় ডেটাসেটগুলিতে):
ক্রেডিট:
বড় dask
ডেটাসেটগুলি পরিচালনা করার জন্য কিছু ওয়ার্ক-ইন-প্রগ্রেস রেফারেন্স (২০১ as হিসাবে) :