2017-02-15 2 views
0

Можно ли выбрать кадр данных из списка по имени (как условие)? Например, я хотел бы вернуть строку 2 (индекс 1) из следующего df из df_list двумя последними буквами «BA»;Выбор данных из списка по имени

df_HO_BA = pd.DataFrame(
     {'bin': [0,3,2], 
     'LG': ['AR1', 'PO1', 'RU1']}) 

    LG bin 
0 AR1 0 
1 PO1 3 
2 RU1 2 

df_list = [df_HO_BA] 

ответ

2

Держите dataframes в словаре вместо и использовать функцию для вызова соответствующего dataframe, основанный на данное ключевое слово, содержащегося в имени dataframe в:

df_HO_BA = pd.DataFrame(
     {'bin': [0,3,2], 
     'LG': ['AR1', 'PO1', 'RU1']}) 

df_dic = {'df_HO_BA':df_HO_BA} 

def return_df(dic, keyword): 
    for key in dic.keys(): 
     if keyword in key: 
      return df_dic[key] 
     else: 
      raise Exception('keyword "{0}" not found in any dataframe names'.format(keyword)) 

new_df = return_df(df_dic, 'BA') 
print new_df 

OUT: 
LG bin 
0 AR1 0 
1 PO1 3 
2 RU1 2 
+0

извини, не было полной ясности , Мне нужно выбрать часть имени. Я отрегулирую вопрос – Zanshin

+0

Обновлено за ваш отзыв – NickBraunagel

+0

Спасибо, это работает. – Zanshin

Смежные вопросы