У меня есть такой список:
network = ['facebook','organic',instagram']
И я создаю 3 dataframes: 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'])]
Но он возвращает SyntaxError: не может быть назначен оператору
2 ответа
Наиболее эффективным решением было бы создать словарь, хранящий кадры данных:
d = {i + '_count': df[df.isin([i + ' installs'])] for i in network}
И чтобы получить фрейм данных, выполните:
print(d['facebook_count'])
Выводом будет фрейм данных facebook_count
с ожидаемыми значениями
Простое решение - использовать 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'])]
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.