Python --- цикл над словарем с фреймами данных - PullRequest
1 голос
/ 17 октября 2019

У меня есть словарь фреймов данных

list_of_dfs={'df1:Dataframe','df2:Dataframe','df3:Dataframe','df4:Dataframe'}

Каждый фрейм данных содержит те же переменные (цена, объем, цена, «продажа / покупка»), которыми я хочу манипулировать, чтобы получить новое подмножествоDataFrames. Мои новые фреймы данных должны фильтровать переменную под названием «Продать / купить» по наблюдениям, в которых есть «Продать» в переменной.

sell=df[df["Sale/Purchase"]=="Sell"]

Мой вопрос: как мне перебрать словарь, чтобы получитьНовый словарь с этим новым подмножеством?

Я не знаю, как написать эту команду, чтобы сделать цикл. Я знаю, что это должно начаться так:

 # Create an empty dictionary called new_dfs to hold the results
new_dfs = {}
# Loop over key-value pair
for key, df in list_of_dfs.items():

Но тогда, из-за моего небольшого знания циклического перебора словаря данных, я не знаю, как написать команду фильтра. Буду очень благодарен, если кто-нибудь сможет мне помочь.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 17 октября 2019

Вы можете отобразить функцию:

lambda df: df[df["Sale/Purchase"] == "Sell"]

КАК:

Синтаксис = map(fun, iter)

map(lambda df: df[df["Sale/Purchase"] == "Sell"], list_of_dfs)

Вы можете отобразить его на list или set

Для dict:

df_dict = {k: df[df["Sale/Purchase"]=="Sell"] for k, df in list_of_dfs.items()}

0 голосов
/ 17 октября 2019

Что-то вроде:

sells = {k: v for (k, v) in list_of_df.items() if v["Sale/Purchase"] == "Sell"}

Этот шаблон называется словарным пониманием. Согласно этот вопрос это самый быстрый и самый питонский подход.

Вы должны привести пример данных, с которыми вы имеете дело, для более точного ответа.

0 голосов
/ 17 октября 2019

Попробуйте,

dict_of_dfs={'df1':'Dataframe','df2':'Dataframe','df3':'Dataframe','df4':'Dataframe'}


# Create an empty dictionary called new_dfs to hold the results
new_dfs = {}
# Loop over key-value pair
for key, df in dict_of_dfs.items():
    new_dfs[key] = df[df["Sale/Purchase"]=="Sell"]

Объяснение:

new_dfs = {} # Here we have created a empty dictionary.
# dictionary contains keys and values.
# to add keys and values to our dictionary, 
# we need to do it as shown below,
new_dfs[our_key_1] = our_value_2
new_dfs[our_key_2] = our_value_2
.
.
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...