Python 如何使用列表中的项目作为变量并为其赋值?
我希望使用pandas库读取多个csv文件,并使用for循环将该数据帧分配给列表中的项目。 目前我有两个列表(一个列表包含数据帧名称,第二个列表包含数据帧) 例如,我使用以下代码:Python 如何使用列表中的项目作为变量并为其赋值?,python,pandas,Python,Pandas,我希望使用pandas库读取多个csv文件,并使用for循环将该数据帧分配给列表中的项目。 目前我有两个列表(一个列表包含数据帧名称,第二个列表包含数据帧) 例如,我使用以下代码: list1 = ['amol', 'ankit', 'akshay', 'ashok'] # in actual there are 100+ items in the list marks = [50, 60, 70, 80] # marks list actully contains dataframe -
list1 = ['amol', 'ankit', 'akshay', 'ashok'] # in actual there are 100+ items in the list
marks = [50, 60, 70, 80] # marks list actully contains dataframe - pandas.core.frame.DataFrame
for ind, name in enumerate(list1):
name = marks[ind]
print(amol)
# NameError: name 'amol' is not defined.
这不是为“amol”赋值,而是给出“NameError:未定义名称“amol”
我试着用字典
list1 = ['amol', 'ankit', 'akshay', 'ashok']
marks = [50, 60, 70, 80]
mark_dict = {}
for ind, name in enumerate(list1):
mark_dict[name] = marks[ind]
print(mark_dict['amol'])
Dictionary正在工作,但我想给'amol'赋值,这样就可以执行下面的代码,并且应该给我一个输出(在实际项目中,它应该返回dataframe)。
请告诉我怎么做
print(amol)
您可以使用
globals()
将变量添加到模块的全局命名空间zip
将两个列表转换为匹配元组的itertator(列表1[0],标记[0])
等globals().update
的工作原理与常规的dict.update
类似,因此可以将这些元组直接输入其中以更新名称空间
list1 = ['amol', 'ankit', 'akshay', 'ashok'] # in actual there are 100+ items in the list
marks = [50, 60, 70, 80]
globals().update(zip(list1, marks))
print(amol)
这不是一件平常的事。通常情况下,人们会将动态生成的数据保存在字典中。“我不能在我的项目中使用字典”-为什么不能?大多数Python都是隐藏的字典,因此如果这是真的,您可能会遇到一个巨大的问题。这是否回答了您的问题?您可以包括您期望的
amol
吗?如果我理解您在这里尝试做什么,您可能想尝试打印一个未创建的变量,我想使用pandas库读取多个csv文件,我想使用for循环将该数据帧分配给“amol”。所以当我打印amol时,它应该打印数据帧。
list1 = ['amol', 'ankit', 'akshay', 'ashok']
marks = [50, 60, 70, 80]
mark_dict = {}
for ind, name in enumerate(list1):
mark_dict[name] = marks[ind]
print(mark_dict['amol'])