熊猫合并/过滤数据框

时间:2020-03-31 01:35:44

标签: python pandas

我有两个数据框, 第一个是属于欧盟的欧洲城市的清单, 他们在哪个国家/地区:

citys_in_eu

国家城市

0瑞典斯德哥尔摩 1德国柏林 2德国法兰克福 3西班牙巴塞罗那 4西班牙马德里 5法国巴黎 ...

对于许多观察,假设数据以这种方式进行,并且可能 每个国家对城市的许多观察。

下一个数据框架是欧洲的所有城市,而不是排他性的 属于欧盟。

此数据框包含有关城市人口的信息:

citys_in_europe

乡村城市人口(亿)

瑞典斯德哥尔摩2 德国柏林8 德国法兰克福5 西班牙巴塞罗那6 西班牙马德里3 法国巴黎8 瑞士伯尔尼1 俄罗斯莫斯科6 ...

(这里的数字是组成的)

基本上我想测试一下之间的人口差异 通过过滤数据以仅查看欧盟城市和非欧盟城市 欧盟内/非欧盟内的城市。 仅使用citys_in_eu的数据框列表,我将如何 实现这一目标?

basically i want to test the difference in population between EU cities and non-EU cities by filtering the data to only see cities in/not in the EU. Using only the data frame list of cities_in_eu, how would i achieve this?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

首先,您将基于cities_in_eu

创建一个欧盟城市列表
EUcities = list(set(cities_in_eu.city))

然后,您将创建一个表,其中包含欧盟城市的所有人口信息:

#create a list of booleans
filter = []
for city in cities_in_europe.city:
    filter.append(True if city in EUcities else False)
filtered = pd.Series(filter)
#this one will remain only cities in EU
df_eu = cities_in_europe[filtered]
nonEU_filter = [not i for i in filter]
nonEU_filtered = pd.Series(nonEU_filter)
df_non_eu = cities_in_europe[nonEU_filtered]

您去了,现在有2 df的欧盟人口密集城市和非欧盟的人口密集城市。然后您可以对这两个做其他事情