如何自动建立多个清单

时间:2018-08-21 13:44:57

标签: python list pandas loops dataframe

我对数据框有些疑惑,假设名称是df1,...,df250,我需要按这些数据框的一列来建立列表。通常我是手动做的,但是今天数据太多了,容易出错

这就是我所做的

list1 = df1['customer_id'].tolist()
list2 = df2['customer_id'].tolist()
..
list250 = df250['customer_id'].tolist()

这是如此手动,我们能以更简单的方式做到这一点吗?

3 个答案:

答案 0 :(得分:3)

更简单的方法是退后一步,并确保将数据框放入诸如listdict之类的集合中。然后,您可以轻松地以可扩展的方式执行操作。

例如:

dfs = {1: df1, 2: df2, 3: df3, ... , 250: df250}

lists = {k: v['customer_id'].tolist() for k, v in dfs.items()}

然后您可以以lists[1]lists[2]等访问结果。

还有其他好处。例如,您不再污染名称空间,省去了显式定义变量名称的工作,可以轻松存储和传输对象的相关集合。

答案 1 :(得分:1)

我将使用下一个代码。在这种情况下,无需手动创建DataFrame列表。

cust_lists = {'list{}'.format(i): globals()['df{}'.format(i)]['customer_id'].tolist()
                   for i in range(1, 251)}

现在,您可以按名称访问cust_lists字典中的列表,如下所示:

`cust_lists['list1']`

`list1`

答案 2 :(得分:1)

使用exec函数可以执行存储在字符串中的python代码:

for i in range(1,251):
   s = "list"+str(i)+" = df"+str(i)+"['customer_id'].tolist()"
   exec(s)