最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python一鍵搞定Excel數(shù)據(jù)自動分配

 更新時間:2025年10月21日 08:58:35   作者:IT小本本  
這篇文章主要為大家詳細介紹了Python一鍵搞定Excel數(shù)據(jù)自動分配的相關(guān)方法,可以輕松實現(xiàn)水果分箱,文中的示例代碼講解詳細,有需要的小伙伴可以了解下

做庫存管理、生鮮分揀時,你是不是也遇到過這些麻煩?—— 手里有幾十行水果總數(shù)數(shù)據(jù),要按 “每箱最多 24 個、最多分 6 箱” 的規(guī)則分配,手動算不僅慢,還容易漏算余數(shù)、填錯單元格。

今天分享一段 Python 代碼,3 步完成 Excel 水果分箱,自動處理空值、覆蓋舊列,新手也能直接用!

一、場景痛點:手動分箱的 3 個坑

假設(shè)你有這樣一份 Excel 表(“水果分箱.xlsx”):

水果總數(shù)箱 1箱 2箱 3箱 4箱 5箱 6
32
130
77
124
117
20

要按規(guī)則分箱(每箱≤24 個,最多 6 箱),手動算會遇到:

  • 余數(shù)難處理:50 個蘋果,24×2=48,剩 2 個,得手動補 1 箱(共 3 箱:24,24,2);
  • 空值易出錯:橙子總數(shù)為空,手動可能填錯成 0 或漏填;
  • 批量效率低:100 行數(shù)據(jù)要算 100 次,改規(guī)則(如每箱 20 個)又得重算。

而 Python 代碼能自動解決這些問題,全程不用手動計算!

二、代碼拆解:5 分鐘看懂分箱邏輯

這段代碼核心是 “讀取 Excel→按規(guī)則分箱→寫回 Excel”,共 7 步,每步都有明確目的,我們逐行拆解:

1. 導入工具庫

import pandas as pd  # 處理Excel數(shù)據(jù)的“神器”
import math          # 用于計算箱子數(shù)量(向上取整)

→ 只需這兩個庫,安裝命令:pip install pandas openpyxl(openpyxl 是讀取 Excel 的依賴)。

2. 讀取 Excel 數(shù)據(jù)

df = pd.read_excel('水果分箱.xlsx')

→ 把 Excel 文件讀成 “數(shù)據(jù)表格”(DataFrame),后續(xù)所有操作都在這個表格上進行。

3. 分箱規(guī)則參數(shù)化(關(guān)鍵!方便修改)

max_per_box = 24   # 每箱最多裝24個(想改20個?直接改這個數(shù))
max_boxes = 6      # 最多分6箱(要分8箱?改這里就行)

→ 所有規(guī)則集中在這里,不用改核心代碼,新手也能靈活調(diào)整。

4. 核心分箱函數(shù)(代碼的 “大腦”)

def split_into_boxes(total, max_per_box=24, max_boxes=6):
    # 1. 處理空值:如果“水果總數(shù)”是空的,返回6個0(對應(yīng)6箱)
    if pd.isna(total):
        return [0] * max_boxes
    # 2. 確??倲?shù)是整數(shù)(避免Excel里的小數(shù)問題)
    total = int(total)
    # 3. 計算需要多少箱子:總數(shù)÷每箱數(shù),向上取整(比如50÷24=2.08→需3箱)
    num_boxes = math.ceil(total / max_per_box)
    # 4. 限制最多6箱:即使需要7箱,也只分6箱(符合規(guī)則)
    num_boxes = min(num_boxes, max_boxes)
    # 5. 分配數(shù)量:先算每箱基礎(chǔ)數(shù),余數(shù)分給前幾箱(避免某箱數(shù)量超標)
    base = total // num_boxes  # 基礎(chǔ)數(shù)量(如50÷3=16)
    remainder = total % num_boxes  # 余數(shù)(50%3=2)
    # 前2箱分16+1=17個,第3箱分16個,后面補0到6箱
    boxes = [base + 1 if i < remainder else base for i in range(num_boxes)]
    boxes += [0] * (max_boxes - num_boxes)
    return boxes

舉個例子:50 個蘋果代入函數(shù):

  • num_boxes=math.ceil (50/24)=3(需 3 箱)
  • base=50//3=16,remainder=50%3=2
  • boxes=[17,17,16,0,0,0](前 2 箱 17 個,第 3 箱 16 個,后 3 箱 0)

完美符合 “每箱≤24、最多 6 箱” 的規(guī)則!

5. 批量計算所有水果的分箱結(jié)果

# 對“水果總數(shù)”列的每一行,都執(zhí)行分箱函數(shù)
result = df['水果總數(shù)'].apply(split_into_boxes)
# 把結(jié)果轉(zhuǎn)成新表格,列名是“箱 1”到“箱 6”
boxes_df = pd.DataFrame(result.tolist(), columns=[f'箱 {i}' for i in range(1, max_boxes + 1)])

→ 不管 Excel 有多少行數(shù)據(jù),1 行代碼就能批量處理,比手動快 10 倍!

6. 寫回原表格 + 保存文件

# 把分箱結(jié)果列(箱1-箱6)寫入原Excel表,已有這些列就覆蓋(避免手動刪空列)
for col in boxes_df.columns:
    df[col] = boxes_df[col]
# 保存為新文件,不保留索引(Excel更整潔)
df.to_excel('水果分箱結(jié)果.xlsx', index=False)
print("已生成文件:水果分箱結(jié)果.xlsx ")

→ 不用手動復(fù)制粘貼,直接得到帶分箱結(jié)果的 Excel,打開就能用!

三、代碼技術(shù)要點:3 個貼心設(shè)計

自動處理空值:遇到 “水果總數(shù)” 為空的行,自動填 6 個 0,避免漏填;

靈活修改規(guī)則:想改 “每箱 30 個、最多 8 箱”,只需改 max_per_box 和 max_boxes 兩個參數(shù);

覆蓋舊列不報錯:如果原 Excel 已有 “箱 1” 列,會自動覆蓋舊數(shù)據(jù),不用手動刪除。

四、實操小貼士:新手必看

Excel 文件位置:要把 “水果分箱.xlsx” 和代碼放在同一個文件夾,否則要寫全文件路徑(比如pd.read_excel(‘D:/工作/水果分箱.xlsx’));

處理其他數(shù)據(jù):除了水果,商品包裝、物料分配也能用,只需把 “水果總數(shù)” 改成 “商品總數(shù)”“物料總數(shù)”;

查看中間結(jié)果:想確認分箱是否正確,可在第 5 步后加print(boxes_df),運行時會顯示分箱結(jié)果。

五、效果演示:輸入→輸出

生成的結(jié)果 Excel(水果分箱結(jié)果.xlsx):

水果總數(shù)箱 1箱 2箱 3箱 4箱 5箱 6
321615
130222222222121
7720191919
124212121212020
1172424232323
2020

六、全部源代碼(復(fù)制即用)

import pandas as pd
import math

# === 1. 讀取 Excel 數(shù)據(jù) ===
df = pd.read_excel('水果分箱.xlsx')

# === 2. 參數(shù)設(shè)置 ===
max_per_box = 24   # 每箱最多裝 24 個
max_boxes = 6      # 最多 6 箱

# === 3. 分箱計算函數(shù) ===
def split_into_boxes(total, max_per_box=24, max_boxes=6):
    if pd.isna(total):
        return [0] * max_boxes
    total = int(total)
    num_boxes = math.ceil(total / max_per_box)
    num_boxes = min(num_boxes, max_boxes)

    base = total // num_boxes
    remainder = total % num_boxes
    boxes = [base + 1 if i < remainder else base for i in range(num_boxes)]
    boxes += [0] * (max_boxes - num_boxes)
    return boxes

# === 4. 分配結(jié)果計算 ===
result = df['水果總數(shù)'].apply(split_into_boxes)
boxes_df = pd.DataFrame(result.tolist(), columns=[f'箱 {i}' for i in range(1, max_boxes + 1)])

# === 5. 寫入回原表(如果已存在箱列則覆蓋) ===
for col in boxes_df.columns:
    df[col] = boxes_df[col]

# === 6. 顯示結(jié)果 ===
print(df)

# === 7. 保存為新文件 ===
df.to_excel('水果分箱結(jié)果.xlsx', index=False)
print(" 已生成文件:水果分箱結(jié)果.xlsx ")

如果需要調(diào)整分箱規(guī)則(比如按重量分箱),或者處理 CSV 文件,都可以留言告訴我,咱們再優(yōu)化代碼~

到此這篇關(guān)于Python一鍵搞定Excel數(shù)據(jù)自動分配的文章就介紹到這了,更多相關(guān)Python Excel數(shù)據(jù)自動分配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • json跨域調(diào)用python的方法詳解

    json跨域調(diào)用python的方法詳解

    這篇文章主要介紹了json跨域調(diào)用python的方法,結(jié)合實例形式分析了基于ajax的json調(diào)用及Python后臺處理技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • python 提取tuple類型值中json格式的key值方法

    python 提取tuple類型值中json格式的key值方法

    今天小編就為大家分享一篇python 提取tuple類型值中json格式的key值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • PyPI版本號重復(fù)發(fā)布問題解決

    PyPI版本號重復(fù)發(fā)布問題解決

    本文主要介紹了PyPI版本號重復(fù)發(fā)布問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-11-11
  • Python結(jié)合PyWebView庫打造跨平臺桌面應(yīng)用

    Python結(jié)合PyWebView庫打造跨平臺桌面應(yīng)用

    隨著Web技術(shù)的發(fā)展,將HTML/CSS/JavaScript與Python結(jié)合構(gòu)建桌面應(yīng)用成為可能,本文將系統(tǒng)講解如何使用PyWebView庫實現(xiàn)這一創(chuàng)新方案,希望對大家有一定的幫助
    2025-04-04
  • Python實現(xiàn)定時文件備份到指定文件夾

    Python實現(xiàn)定時文件備份到指定文件夾

    隨著數(shù)據(jù)的不斷增長,文件備份變得越來越重要,本文將介紹如何使用Python編寫一個定時備份文件的腳本,并將文件備份到指定的文件夾中,希望對大家有所幫助
    2024-11-11
  • Python WEB應(yīng)用部署的實現(xiàn)方法

    Python WEB應(yīng)用部署的實現(xiàn)方法

    這篇文章主要介紹了Python WEB應(yīng)用部署的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 深入剖析Python的列表和元組

    深入剖析Python的列表和元組

    這篇文章主要介紹了深入剖析Python的列表和元組,Python有4個內(nèi)建的數(shù)據(jù)結(jié)構(gòu),它們可以統(tǒng)稱為容器,因為它們實際上是一些“東西”組合而成的結(jié)構(gòu),而這些“東西”,可以是數(shù)字、字符甚至列表,或是它們的組合,需要的朋友可以參考下
    2023-07-07
  • Python FastAPI實現(xiàn)JWT校驗的完整指南

    Python FastAPI實現(xiàn)JWT校驗的完整指南

    在現(xiàn)代Web開發(fā)中,構(gòu)建安全的API接口是開發(fā)者必須面對的核心挑戰(zhàn)之一,本文將深入探討如何基于FastAPI實現(xiàn)JWT(JSON Web Token)校驗機制,需要的可以了解下
    2025-05-05
  • python通用數(shù)據(jù)庫操作工具 pydbclib的使用簡介

    python通用數(shù)據(jù)庫操作工具 pydbclib的使用簡介

    這篇文章主要介紹了python通用數(shù)據(jù)庫操作工具 pydbclib的使用簡介,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python編寫函數(shù)注意事項總結(jié)

    python編寫函數(shù)注意事項總結(jié)

    在本篇文章里小編給大家分享了一篇關(guān)于python編寫函數(shù)注意事項總結(jié)內(nèi)容,有需要的朋友們可以學習下。
    2021-03-03

最新評論

万荣县| 延安市| 罗源县| 确山县| 尚志市| 梧州市| 商洛市| 鹰潭市| 左贡县| 同江市| 灵石县| 平顺县| 阿克苏市| 徐闻县| 瑞丽市| 玛纳斯县| 绥化市| 晋宁县| 刚察县| 阳原县| 斗六市| 科尔| 微山县| 交城县| 乐业县| 定南县| 苗栗县| 新野县| 文化| 梅州市| 融水| 洪泽县| 扶风县| 社会| 吕梁市| 怀集县| 隆安县| 宁晋县| 岳西县| 沙雅县| 沈阳市|