将列表中的元素用于数据框名称

时间:2019-05-20 09:15:11

标签: python dataframe

我有一个这样的列表:

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:无法分配给运算符

2 个答案:

答案 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_countorganic_countinstagram_count用作字典的键

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