Цикл по нескольким DataFrames для выполнения одной и той же задачи - PullRequest
0 голосов
/ 28 марта 2019

Я запускаю следующий код и получаю желаемый вывод для одного DataFrame, a:

a = a.reset_index()
a['count'] = 1
a = pd.DataFrame(a.groupby(['country','id','town','date'])['count'].mean())
a = a.groupby(['date','town']).count()
a['percentage'] = a['count'].div(a.groupby('date').['count'].transform('sum')).mul(100)
a = a['percentage'].unstack()

Однако у меня есть несколько фреймов данных (a, b, c, d, e, f, g, h), и я не уверен, как выполнить цикл торговый центр. Любая помощь, чтобы спасти меня вручную, это было бы здорово!

1 Ответ

1 голос
/ 28 марта 2019

Полагаю, один вариант - использовать словари с функцией:

# sample data
a = pd.DataFrame(np.random.randn(5,5))
b = pd.DataFrame(np.random.randn(5,5))
c = pd.DataFrame(np.random.randn(5,5))

# create a dict with a key as the "variable name"
dfs = {'a':a, 'b':b, 'c':c}

# some fucntion
def myFunc(df):
    # do stuff
    return df.sum().to_frame()

# dict comprehension
d = {k:myFunc(v) for k,v in dfs.items()}

# call dataframes with the key
d['a']

              0
    0  2.023154
    1 -0.598737
    2 -0.879587
    3 -3.264965
    4  0.974626
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...