将所有excel工作表另存为datafram

2024-06-14 06:13:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典,可以存储给定excel文件中的所有数据帧。你知道吗

import pandas as pd
xl=pd.ExcelFile('pandas_worksheets.xlsx')

mydic={}
for i in xl.sheet_names:
    mydic[i] = xl.parse(i)

我可以使用以下语法调用任何dataframe表:

mydic['olympic']

但我如何简单地称之为“奥林匹克”来返回那个数据帧呢?(不使用mydic)

像这样的工作。。。你知道吗

olympic = xl.parse('olympic')

但是相同的逻辑在for循环中不起作用

for i in xl.sheet_names:
    i = xl.parse(i)

它将最后一个数据帧保存为literal i,而不是将其替换为sheet name。你知道吗


更新:

mydic={'a':1, 'b': 2}

for i in mydic:
    i = mydic[i]

a

NameError: name 'a' is not defined

(期望值为1,而不是NameError)


Tags: 数据nameinpandasfor字典namesparse
1条回答
网友
1楼 · 发布于 2024-06-14 06:13:50

尽管当你可以维护一本字典时,不赞成注入和污染全局名称空间,但你仍然可以通过以下几种方式来实现:

globals()

mydic={'a':1, 'b': 2}

globals().update(mydic)
print a
print b

输出:

1
2

使用exec()

mydic={'a':1, 'b': 2}

for i in mydic:
    exec("%s = mydic['%s']"%(i,i))

print a
print b

输出:

1
2

相关问题 更多 >