第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Python中從多個(gè)Excel工作表創(chuàng)建同名列的數(shù)據(jù)框

在Python中從多個(gè)Excel工作表創(chuàng)建同名列的數(shù)據(jù)框

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

1 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

請檢查片段。

涉及的步驟

  1. 將列名稱創(chuàng)建為工作表名稱+銷售額

  2. 讀取Excel文件并轉(zhuǎn)換為DataFrame

  3. 如果數(shù)據(jù)框中存在Sales,則將值存儲(chǔ)在列表中。

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

  5. 轉(zhuǎn)置嵌套列表并根據(jù)索引值轉(zhuǎn)換為數(shù)據(jù)幀

我的 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

"""


查看完整回答
反對 回復(fù) 2023-08-08
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)