多次过滤多个条件的pandas数据帧

时间:2018-05-08 20:41:44

标签: pandas dataframe filter

我有这个数据框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

此功能需要很长时间。我想知道是否有更快的方法来做到这一点?

0 个答案:

没有答案