我对数据框有些疑惑,假设名称是df1
,...,df250
,我需要按这些数据框的一列来建立列表。通常我是手动做的,但是今天数据太多了,容易出错
这就是我所做的
list1 = df1['customer_id'].tolist()
list2 = df2['customer_id'].tolist()
..
list250 = df250['customer_id'].tolist()
这是如此手动,我们能以更简单的方式做到这一点吗?
答案 0 :(得分:3)
更简单的方法是退后一步,并确保将数据框放入诸如list
或dict
之类的集合中。然后,您可以轻松地以可扩展的方式执行操作。
例如:
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)