【问题标题】:How to calculate median value for multiple geodata in one row/ cell/ unit如何计算一行/单元格/单元中多个地理数据的中值
【发布时间】:2020-01-25 17:37:17
【问题描述】:

这些值是一 (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】:

我不确定您要从什么数据类型开始,但如果您能够将您的配对放入一个字符串中,那就很简单了。

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()

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

【讨论】:

  • 如果此解决方案对您有用,请您投票吗?
猜你喜欢
  • 1970-01-01
  • 2023-02-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多