Pythonic将数据帧列表与字符串列表相关联的方法

时间:2018-04-04 13:52:49

标签: python list pandas dfs

将json对象转换为csv时遇到此问题:

我现在有两个清单:

list_A是一个字符串列表。每个字符串都是df的名称。

list_A = ['df1', 'df2', 'df3'] 

list_B有3个pandas.core.frame.DataFrame对象。

list_B[0] = [an entire df with columns, rows etc]

什么代码可以确保一个列表中的字符串与另一个列表中的数据帧之间的关联,例如df1 = list_B [0]然后df2 = list_B [1]等等?

谢谢

3 个答案:

答案 0 :(得分:4)

您可以将它们与dict

相关联
df_dict = dict(zip(list_A, list_B))

df_dict['df1'].head() ## Returns the first 10 rows of list_B[0]

答案 1 :(得分:0)

使用字典:

dfs = dict(zip(list_A, list_B))

然后使用dfs['df1']

访问各个数据框
list_a = ['a', 'b', 'c']
list_b = [1, 2, 3]
d = dict(zip(list_a, list_b))
print(d['a'])
# 1

或黑客locals

for name, df in zip(list_A, list_B):
    locals()[name] = df

然后,您可以直接访问各个数据框,df1df2等:

list_a = ['a', 'b', 'c']
list_b = [1, 2, 3]
for key, value in zip(list_a, list_b):
    locals()[key] = value
print(a)
#  1

答案 2 :(得分:0)

如果你想要三个变量,最好的方法是分配它们:

df1, df2, df3 = list_B

这将解包列表,为每个变量赋值。

对于太多变量使用:

{'df{}'.format(i): df for i, df in enumerate(list_B, 1)}