我有这个数据框top100(100个独特的城市和州)
city state
Las Vegas Nevada
Fremont California
Boise City Idaho
Richmond Virginia
San Bernardino California
....
和dataframe数据库(1,000,000行)
city state data
Las Vegas Nevada Las.Vegas.Nevada.2
Las Vegas Nevada Las.Vegas.Nevada.4
.....
Boston Massachusetts Boston.Massachusetts.47
Boston Massachusetts Boston.Massachusetts.48
.....
Richmond Virginia Richmond.Virginia.34
....
如何使用top100过滤df?结果将与数据库格式相同,但仅限于top100数据框中的前100个城市。 这是我目前的
def filter_city():
# Initialize an empty dataframe to store result
d = {'state': [], 'city':[], 'data':[]}
df = pd.DataFrame(d)
# Loop through each city in top 100
for i in range(len(top100['city'])):
tempCity = database[database['city'].str.contains(top100['city'][i]) &
database['state'].str.contains(top100['state'][i])].copy()
df = df.append(tempCity)
return df
此功能需要很长时间。我想知道是否有更快的方法来做到这一点?