如何计算一个行/单元格/单位中多个地理数据的中位数

问题描述 投票:0回答:1

这些值是一对(1)键值对。 POLYGON由地理数据对(epsg.io)组成。我想用中位数代替一长串对。如何计算中位数?

stand_wkts_17518235_wkt': 'POLYGON ((492828.736516854 6954026.18089914,492829.429213483 6954026.56685419,492834.140449438 6954029.20224745,492808.438764045 6954067.00000026,492799.932022472 6954079.51011262,492785.838202247 6954073.80786543,492783.0 6954072.65955082,492733.313483146 6954052.55618004,492721.924157303 6954047.94831487,492688.998876405 6954034.62640475,492672.62752809 6954028.00280925,492654.375842697 6954020.61797779,492651.596067416 6954019.49325869,492651.734269663 6954019.11123622,492652.453932584 6954017.24606768,492653.392134832 6954015.48426992,492654.633146067 6954013.91292161,492655.988202247 6954012.44213509))
python pandas numpy geospatial median
1个回答
0
投票

我不确定您要开始使用哪种数据类型,但是如果您能够将对变成字符串,那将非常简单。

pairs = '492828.736516854 6954026.18089914,492829.429213483 6954026.56685419,492834.140449438 6954029.20224745,492808.438764045 6954067.00000026,492799.932022472 6954079.51011262,492785.838202247 6954073.80786543,492783.0 6954072.65955082,492733.313483146 6954052.55618004,492721.924157303 6954047.94831487,492688.998876405 6954034.62640475,492672.62752809 6954028.00280925,492654.375842697 6954020.61797779,492651.596067416 6954019.49325869,492651.734269663 6954019.11123622,492652.453932584 6954017.24606768,492653.392134832 6954015.48426992,492654.633146067 6954013.91292161,492655.988202247 6954012.44213509'

使用拆分

pair_lst = [pair.split() for pair in pairs.split(',')]

将字符串转换回浮点并创建一个DataFrame

df = pd.DataFrame([[float(pair[0]) for pair in pair_lst],[float(pair[1]) for pair in pair_lst]]).T

使用以下方法计算列的中位数:

df[0].median()
df[1].median()

这可能可以更高效/简洁地完成,但我想我会试一试。

© www.soinside.com 2019 - 2024. All rights reserved.