gpt4 book ai didi

python - Pandas 列中的精确匹配字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:39 25 4
gpt4 key购买 nike

设置

我抓取房屋广告数据并使用 pandas 进行分析。我计算了平均统计数据并将它们插入到 Pandas 数据框中:district_df

其中一个 district_df 列包含地区名称:district_df['district']

district_df 列中的另一个包含分区名称:district_df['subdistrict']

他们看起来像,

        district           subdistrict      
Bergen-Enkheim Bergen-Enkheim
Bornheim/Ostend Bornheim
Bornheim/Ostend Ostend
Harheim Harheim
Innenstadt I Altstadt
Innenstadt I Bahnhofsviertel
Innenstadt I Gallus
Innenstadt II Bockenheim
Innenstadt II Westend-Nord
⋮ ⋮

问题

我从每个学区的 district_df 创建一个学区表 (district_table)。 IE。对于以上内容,我创建了五个分区表。我通过以下代码执行此操作,

for district in d_set: # d_set is a set containing all district names 
district_table = district_df[district_df['district'].str.match(district)]

此代码有效,即:为每个区创建一个表。

但是,Innenstadt II 的表还包含 Innenstadt I 的分区。

在我看来,.str.match(district) 不完全匹配,但部分匹配。 IE。 Innenstadt I 将匹配 Innenstadt II

我的实际 district_df 列包含的内容比我在此处显示的内容更多 - 各种地区名称都会出现问题。

如何获得精确匹配?

最佳答案

我想你需要boolean indexing在循环中:

d_set = district_df['district'].unique()

for district in d_set:
district_table = district_df[district_df['district'] == district]
print (district_table)

district subdistrict
0 Bergen-Enkheim Bergen-Enkheim
district subdistrict
1 Bornheim/Ostend Bornheim
2 Bornheim/Ostend Ostend
district subdistrict
3 Harheim Harheim
district subdistrict
4 Innenstadt I Altstadt
5 Innenstadt I Bahnhofsviertel
6 Innenstadt I Gallus
district subdistrict
7 Innenstadt II Bockenheim
8 Innenstadt II Westend-Nord

如果需要 DataFramesdict 更好的方法是转换 groupby对象:

a = dict(tuple(district_df.groupby('district')))

print (a['Innenstadt I'])
district subdistrict
4 Innenstadt I Altstadt
5 Innenstadt I Bahnhofsviertel
6 Innenstadt I Gallus

关于python - Pandas 列中的精确匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43758249/

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