我有一个这样的列表:
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'])]
有没有一种方法可以编写一次创建这三个数据帧的迭代? 我写这样的东西:
for i in range(len(network)+1):
network[i]+'_count' = df[df.isin([network[i]+' installs'])]
但是它返回一个SyntaxError:无法分配给运算符
答案 0 :(得分:3)
最有效的解决方案是创建一个存储数据帧的字典:
d = {i + '_count': df[df.isin([i + ' installs'])] for i in network}
要获取数据框,请执行以下操作:
print(d['facebook_count'])
输出将是具有期望值的facebook_count
数据框
答案 1 :(得分:1)
一个简单的解决方法是使用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'])]