использовать элементы в списке для имен данных - PullRequest
1 голос
/ 20 мая 2019

У меня есть такой список:

network = ['facebook','organic',instagram']

И я создаю 3 кадра данных: facebook_count, Organic_count, instagram_count, что каждый тип сети.

facebook_count = df[df.isin(['facebook installs'])]
organic_count = df[df.isin(['organic installs'])]
instagram_count = df[df.isin(['instagram installs'])]

так есть ли способ написать итерацию, которая создаст эти 3 кадра данных одновременно? Я пишу что-то вроде этого:

for i in range(len(network)+1):
    network[i]+'_count' = df[df.isin([network[i]+' installs'])]

Но он возвращает синтаксическую ошибку: не может быть назначен оператору

Ответы [ 2 ]

3 голосов
/ 20 мая 2019

Наиболее эффективным решением было бы создать словарь, хранящий кадры данных:

d = {i + '_count': df[df.isin([i + ' installs'])] for i in network}

И чтобы получить кадр данных, выполните:

print(d['facebook_count'])

Вывод будет facebook_countкадр данных с ожидаемыми значениями

1 голос
/ 20 мая 2019

Простое решение - использовать dictionary

count = {}    # creating a new dictionary
for i in range(len(network)+1):
    count[network[i]+'_count'] = df[df.isin([network[i]+' installs'])]

Таким образом, вы используете имя facebook_count, organic_count и instagram_count в качестве ключей словаря

т.е. count['facebook_count'] = df[df.isin('facebook installs'])]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...