gpt4 book ai didi

python - 通过使用 pandas 创建新列,将查询简化为 'where'?

转载 作者:行者123 更新时间:2023-12-01 08:51:19 24 4
gpt4 key购买 nike

我有一个列,其中包含对列的 SQL 查询。这些是在名为 Select_analysis

的函数上实现的

表格:

Select_analysis (input_shapefile, output_name, {where_clause}) # it takes until where.

示例:

SELECT * from OT         # OT is a dataset
GROUP BY OT.CA # CA is a number that may exist many times.Therefore we group by that field.
HAVING ((Count(OT.OBJECTID))>1) # an id that appears more than once.

OT数据集

objectid     CA
1 125
2 342
3 263
1 125

我们按 CA 分组。

关于having:适用于多次具有objectid的行。也就是本例中的objectid 1。

我的想法是创建另一列来存储结果,该结果将通过 select_analysis 函数中的简单 where 子句进行访问

示例:OT 数据集

objectid     CA       count_of_objectid_aftergroupby
1 125 2
2 342 1
3 263 1
1 125 2

那么可以是:

Select_analysis(roads.shp,output.shp, count_of_objectid_aftergroupby > '1')

注释

必须采用这样的方式,以便最终使用选择分析功能。

最佳答案

假设您将数据拉入 pandas,因为它被标记为 pandas,这是一个可能的解决方案:

df=pd.DataFrame({'objectID':[1,2,3,1],'CA':[125,342,463,125]}).set_index('objectID')


objectID CA
1 125
2 342
3 463
1 125

df['count_of_objectid_aftergroupby']=[df['CA'].value_counts().loc[x] for x in df['CA']]

objectID CA count_of_objectid_aftergroupby
1 125 2
2 342 1
3 463 1
1 125 2

列表组件基本上是这样做的:将 df['CA'] 中每个项目的值计数拉为一个系列。使用 loc 在“CA”的每个值处对系列进行索引,以查找该值的计数将该项目放入列表中将该列表附加为新列

关于python - 通过使用 pandas 创建新列,将查询简化为 'where'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com