亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中從多個Excel工作表創建同名列的數據框

在Python中從多個Excel工作表創建同名列的數據框

縹緲止盈 2023-08-08 14:59:53
假設我有一個包含 100 張表的 Excel 文件。在玩具示例中,床單被稱為 = ['Apple', 'Farm', 'Kitchen', 'Napkin']這些工作表有多個列,但它們都有一個名為“銷售”的列我想要一個包含Sales所有 4 個產品的 python 數據框,方法是將工作表的名稱附加到“Sales”一詞它看起來像這樣:Apple_Sales    Farm_Sales     Kitchen_Sales     Napkin_Sales05               52               104               7566              103               198               09...              ..               ...               ..到目前為止,我可以將 Excel 工作表導入到數據框字典中,但這不是我想要的sales = r'D:/user/...../Sales.xlsx'sal = pd.ExcelFile(Sales)dictsdf = {sheets:sal.parse(sheets:sal) for sheets:sal in sal.sheet_names}
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

請檢查片段。

涉及的步驟

  1. 將列名稱創建為工作表名稱+銷售額

  2. 讀取Excel文件并轉換為DataFrame

  3. 如果數據框中存在Sales,則將值存儲在列表中。

  4. 合并 1 和 3 以創建工作表名稱和銷售值的鍵值對作為嵌套列表。

  5. 轉置嵌套列表并根據索引值轉換為數據幀

我的 Excel 文件看起來像這樣

https://img1.sycdn.imooc.com//64d1e80e0001636f03270151.jpg

import pandas as pd

datadic = pd.read_excel('data.xlsx', sheet_name=None)

sheets=datadic.keys()

sheets=[i+"_"+'Sales' for i in sheets]


dictoframe=pd.Series(datadic).to_frame()

print(dictoframe.to_markdown())


"""

|         | 0                    |

|:--------|:---------------------|

| Apple   | a  b  c  Sales       |

|         | 0  1  2  3      4    |

|         | 1  5  6  7      8    |

| Farm    | d  Sales   e   f     |

|         | 0   9     10  11  12 |

|         | 1  13     14  15  16 |

| Kitchen | Sales   g   h   i    |

|         | 0     17  18  19  20 |

|         | 1     21  22  23  24 |

| Napkin  | j   k  Sales   l     |

|         | 0  25  26     27  28 |

|         | 1  29  30     31  32 |

"""


listofsales=[i['Sales'].tolist() for i in dictoframe[0] if('Sales' in i)]        

finaldic=dict(zip(sheets,listofsales))

df=pd.DataFrame.from_dict(finaldic,orient='index').transpose()

print(df)


"""

   Apple_Sales  Farm_Sales  Kitchen_Sales  Napkin_Sales

0            4          10             17            27

1            8          14             21            31

"""


查看完整回答
反對 回復 2023-08-08
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號