首页 > 解决方案 > 我将如何更新orderedDict 中的每个数据框?

问题描述

我有一个三张的excel文件:

Sheet1:
name   fav    date
blue    5     11/20/2020
orange  5     11/20/2020
red     5     11/20/2020

工作表 2 和 3 遵循相同的格式(同样的列名)

我使用 pandas 来读取 excel 文件,它以orderedDict 的形式出现:

dict = pd.read_excel('Book1.xlsx', sheet_name= None)

输出:`

OrderedDict([('Sheet1',      name  fav       date
0  purple    3 2020-04-29
1     tan    2 2020-04-29
2    blue    1 2020-04-29), ('Sheet2',     name  fav       date
0  white    1 2020-04-29
1  black    2 2020-04-29
2   gray    3 2020-04-29), ('Sheet3',      name  fav       date
0    blue    5 2020-11-20
1  orange    5 2020-11-20
2     red    5 2020-11-20)])

如果我想对所有三个具有相同列名的工作表进行任何操作,我该怎么做?

例如,如果在每个工作表中的每个名称列值的末尾添加字母“g”

前任:

Sheet1:
name     fav      date
blueg     5       11/20/2020
orangeg   5       11/20/2020
redg      5       11/20/2020

sheet2: 
name    fav    date
whiteg   1      4/29/2020
blackg   2      4/29/2020
grayg    3      4/29/2020

有什么建议么?

标签: pythonpython-3.xexceldataframeordereddictionary

解决方案


当您遍历字典中的项目时,使用.items()Python 将它们作为键值对返回。在返回的字典中read_excel(),键是工作表名称,值是数据框。要访问数据框,请将元组拆分到for语句中,然后就地操作数据框:

dict = pd.read_excel('Book1.xlsx', sheet_name= None)

for sheet_name, df in dict.items():
   df['name'] = df['name'] + 'g'   

注意:使用dict字典名称会隐藏用于创建字典的内置dict()函数。您应该使用不同的名称。


推荐阅读