如果我有list = ['a','b','c']
并且excel文件看起来像
hasXpath()
如何制作一个用“1”替换“a”的新列表,用“2”替换“b”等。
要清楚,我想创建一个新列表,其中列出了List2 = [“1”,“2”,“3”],但是使用了excel表。
基本上我的问题是,如何从excel表格中替换列表旁边的单元格内容?
请注意我的excel表比这个更大,名称更复杂。另外,到目前为止,我已将excel文件保存为pandas数据帧。
感谢。
答案 0 :(得分:0)
因为您已经使用过pandas,所以您只需将excel数据与列表简单连接即可。
或者您可以创建一个dict来存储键/值对,然后循环列表以获取该词典中的值。
代码如下所示:(假设所有密钥都可以在Excel中找到,您可能需要添加一些实际使用的验证):
#uses one dict store index
test = ['a' ,'b', 'c']
excel = [['a', 1], ['b', 2], ['c', 3]]
G_indexes = {}
def buildIndexes(data):
G_indexes[data[0]] = data[1]
return data
list(map(buildIndexes, excel))
print('normal',list(map(lambda item: G_indexes[item], test)))
#use pandas join
import pandas as pd
df_excel = pd.DataFrame({'key': ['a', 'b', 'c', 'd', 'e'],
'value': [1, 2, 3, 4, 5]})
your_list = ['a', 'b', 'c']
df_yours = pd.DataFrame({'key': your_list})
df_result = df_yours.join(df_excel.set_index('key'), on='key')
print('pandas',list(df_result['value']))
输出:
normal [1, 2, 3]
pandas [1, 2, 3]
[Finished in 1.04s]
答案 1 :(得分:0)
如果您的列表只包含字符串,则可以遍历每个元素并替换条目。 读取excel文件的最简单方法是使用pandas:
import pandas as pd
df = pd.read_excel('filename') # user read_csv if your file is .csv
df.set_index('Column 1')
new_list = [df[i] for i in old_list] # old_list = ['a', 'b', 'c']
如果你已经安装了pandas并且第1列的条目是唯一的并且我没有错过内联循环,这应该可以工作。其他明智的使用更基本的语法:
new_list = []
for i in old_list:
new_list.append(df[i])