以下内容是可重现的 -> 假设您有一个包含 df/公司名称的列表:
companies = ['AA', 'AAPL', 'BA', 'YHOO']
你可能也有数据,大概还有一个列表? (或者更确切地说是列表列表),例如:
content_of_lists = [
[['a', '1'], ['b', '2']],
[['c', '3'], ['d', '4']],
[['e', '5'], ['f', '6']],
[['g', '7'], ['h', '8']]
]
在这个特殊的例子中,df 可能看起来非常相似,所以这不需要很复杂:
dic={}
for n,m in zip(companies, range(len(content_of_lists))):
dic["df_{}".format(n)] = pd.DataFrame(content_of_lists[m]).rename(columns = {0: "col_1", 1:"col_2"})
在这里,您必须使用dic["df_AA"] 才能访问字典中的数据框。
但是如果您需要对数据框进行更“不同”的命名,我认为您必须使用例如 if-conditions,例如:
dic={}
for n,m in zip(companies, range(len(content_of_lists))):
if n == 'AA':
special_naming_1 = pd.DataFrame(content_of_lists[m]).rename(columns = {0:
"col_1", 1:"col_2"})
elif n == 'AAPL':
special_naming_2 ...
这需要更多的努力,但它允许您以更传统的方式获取数据框对象,只需编写 special_naming_1 而不是 dic['df_AA'] 并让您更好地控制数据框名称和列名称(如果是的话)很重要。