我将如何更新 orderedDict 中的每个数据框?
How would I update each dataframe in orderedDict?
我有一个包含三个 sheet 的 excel 文件:
Sheet1:
name fav date
blue 5 11/20/2020
orange 5 11/20/2020
red 5 11/20/2020
sheet 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)])
如果我想对具有相同列名的所有三个 sheet 进行任何操作,我该怎么做?
例如如果在每个 sheet
中的每个名称列值的末尾添加字母 '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
有什么建议吗?
尝试以下操作来连接您的数据帧:
df = pd.concat(pd.read_excel('Book1.xlsx', sheet_name=None), ignore_index=True)
如果你想保持帧分离并简单地执行一个动作,写一个循环应该可行,继续应用:
for _frame_name, _frame in dict:
_frame["name"] = _frame["name"].apply(lambda x: x + "g", axis=0)
当您遍历字典中的项目时,使用 .items()
和 Python returns 它们作为键值对。在 read_excel()
返回的字典中,键是 sheet 名称,值是数据帧。要访问数据框,请将元组拆分为 for
语句,然后就地操作数据框:
dict = pd.read_excel('Book1.xlsx', sheet_name= None)
for sheet_name, df in dict.items():
df['name'] = df['name'] + 'g'
注意:使用 dict
作为字典名称会影响用于创建字典的内置 dict()
函数。您应该使用不同的名称。
我有一个包含三个 sheet 的 excel 文件:
Sheet1:
name fav date
blue 5 11/20/2020
orange 5 11/20/2020
red 5 11/20/2020
sheet 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)])
如果我想对具有相同列名的所有三个 sheet 进行任何操作,我该怎么做?
例如如果在每个 sheet
中的每个名称列值的末尾添加字母 '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
有什么建议吗?
尝试以下操作来连接您的数据帧:
df = pd.concat(pd.read_excel('Book1.xlsx', sheet_name=None), ignore_index=True)
如果你想保持帧分离并简单地执行一个动作,写一个循环应该可行,继续应用:
for _frame_name, _frame in dict:
_frame["name"] = _frame["name"].apply(lambda x: x + "g", axis=0)
当您遍历字典中的项目时,使用 .items()
和 Python returns 它们作为键值对。在 read_excel()
返回的字典中,键是 sheet 名称,值是数据帧。要访问数据框,请将元组拆分为 for
语句,然后就地操作数据框:
dict = pd.read_excel('Book1.xlsx', sheet_name= None)
for sheet_name, df in dict.items():
df['name'] = df['name'] + 'g'
注意:使用 dict
作为字典名称会影响用于创建字典的内置 dict()
函数。您应该使用不同的名称。