<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          9歲小朋友做Python副業(yè)?500元:制作本地Excel的查詢與生成的程序

          共 6698字,需瀏覽 14分鐘

           ·

          2022-06-18 18:36

          說(shuō)明:這個(gè)單子是被學(xué)員之前做完的,9歲小朋友是自己嘗試做,結(jié)果后來(lái)做完了,效果還不錯(cuò)。

          視頻演示:


          前言

          大家好,我是Larry,今年9歲。我是一名不折不扣的“鍵盤(pán)俠”,自從兩年前遇上了Python這位親切強(qiáng)大而有趣的新朋友后,它成為了我成長(zhǎng)中很重要的小伙伴。說(shuō)它親切,是因?yàn)樵诒姸嗟挠?jì)算機(jī)語(yǔ)言里,它是最通俗友好易上手的;但也不影響它功能豐富、應(yīng)用場(chǎng)景廣且更迭迅速自我強(qiáng)化的優(yōu)秀;說(shuō)它有趣,是因?yàn)樗瓤梢宰屛义塾蝿?chuàng)作設(shè)計(jì)的海洋,同時(shí)也擁有縝密系統(tǒng)的內(nèi)在思維邏輯鍛煉著我。隨著學(xué)習(xí)螞蟻老師課程的日漸深入,我了解到Python我這位好朋友能應(yīng)用于五大重要場(chǎng)景,包括網(wǎng)絡(luò)爬蟲(chóng)、數(shù)據(jù)分析、辦公自動(dòng)化、網(wǎng)頁(yè)開(kāi)發(fā)和人工智能機(jī)器學(xué)習(xí)。正好我學(xué)到了螞蟻老師關(guān)于Pandas數(shù)據(jù)分析的課,雖然我對(duì)Excel等辦公工具不太熟悉,但通過(guò)持續(xù)的學(xué)習(xí),我嘗試用我懂的Python知識(shí)去解決以下關(guān)于制作本地Excel的查詢與生成的程序。

          第1步:開(kāi)始

          1.1 查看題目

          首先,打開(kāi)需求就可以看到:

          Excel預(yù)覽圖片

          1.2 導(dǎo)入模塊并讀取Excel文件

          等會(huì)要用的模塊有:pandas、os、xlwt和uuid
          用import導(dǎo)入的代碼:

          import pandas, os, xlwt, uuid

          導(dǎo)入好后,就要讀取Excel文件了。讀取Excel要用到pandas的read_excel函數(shù)。

          try:
              exl = pandas.read_excel(aim_path)
          except:
              print('找不到文件!請(qǐng)檢查一下文件路徑或文件是否存在')
              os._exit(0)

          剛剛導(dǎo)入os模塊就是為了做異常捕獲找不到文件時(shí)的退出。

          第2步:查詢

          2.1 Excel的索引與輸入

          為了方便后面查詢,要把DataFrame的索引(index)設(shè)為查詢輸入的卡號(hào)。接著,輸出以卡號(hào)為索引的DF,以便用戶查詢。最后,就開(kāi)始循環(huán)輸入了。

          exl.set_index('卡號(hào)', inplace = True)
          print(f'{exl}\n')
          while 1:
              try:
                  idx = input('卡號(hào)(輸入“退出”即可退出):')
                  if idx == '退出':
                      os._exit(0)

          2.2 開(kāi)始查詢、豐富程序

          查詢用dataframe.loc[index]來(lái)完成,最后輸出返回的Series。為了避免用戶輸入非卡號(hào)信息,就又加了異常捕獲。

                  res = exl.loc[idx]
                  print(f'\n{res}\n')
              except KeyError:
                  print('你的卡號(hào)可能輸錯(cuò)了!我找不到這個(gè)卡號(hào)的人哦~\n')
                  continue
              except:
                  print('有些錯(cuò)誤發(fā)生了!\n')
                  continue

          第3步:追加查詢結(jié)果到Excel

          3.1 讀取或新建Excel

          3.1.1 讀取

          讀取跟上面一樣,用read_excel

              try:
                  res_exl = pandas.read_excel(res_path)
          3.1.2 新建Workbook和Sheet

          現(xiàn)在輪到xlwt模塊大展身手啦~ 用Workbook函數(shù)來(lái)新建Workbook;用add_sheet函數(shù)新增Sheet

              except:
                  workbook = xlwt.Workbook()
                  sheet = workbook.add_sheet('new')
                  col = 0
          3.1.2 寫(xiě)入Column

          在Column的位置,需要填入查詢的Excel的列索引,用

          list(pandas.read_excel(aim_path).columns.values)

          可以獲取到。然后把列索引以xlwt.write填進(jìn)去,最后把DF保存再讀取這個(gè)Excel。

          for i in list(pandas.read_excel(aim_path).columns.values):
                      sheet.write(0, col, i)
                      col += 1
                  workbook.save(res_path)
                  res_exl = pandas.read_excel(res_path)

          3.2 追加結(jié)果

          首先,把結(jié)果res變量設(shè)置成列表類型。然后,在這個(gè)列表里面新增結(jié)果沒(méi)有的卡號(hào)。最后把這個(gè)列表設(shè)置成一個(gè)Series(索引為查詢的Excel的列索引)。

              res_series_data = list(res)
              res_series_data.insert(2, idx)
              res_series = pandas.Series(
                  res_series_data, 
                  index = list(
                      pandas.read_excel(aim_path).columns.values
                  )
              )

          現(xiàn)在建好了Series,準(zhǔn)備追加了。追加完后還要保存這個(gè)Excel。

              res_exl.loc[str(uuid.uuid1())] = res_series
              try:
                  res_exl.to_excel(res_path, index = False)
              except:
                  print('寫(xiě)入失敗')

          這里用了uuid.uuid1來(lái)隨機(jī)產(chǎn)生索引,避免重復(fù)而修改其它人的值。最后幾行就是保存的操作,python index = False的意思就是把索引隱藏掉了。

          完整代碼

          try:
              exl = pandas.read_excel(aim_path)
          except:
              print('找不到文件!請(qǐng)檢查一下文件路徑或文件是否存在')
              os._exit(0)
          exl.set_index('卡號(hào)', inplace = True)
          print(f'{exl}\n')
          while 1:
              try:
                  idx = input('卡號(hào)(輸入“退出”即可退出):')
                  if idx == '退出':
                      os._exit(0)
                  res = exl.loc[idx]
                  print(f'\n{res}\n')
              except KeyError:
                  print('你的卡號(hào)可能輸錯(cuò)了!我找不到這個(gè)卡號(hào)的人哦~\n')
                  continue
              except:
                  print('有些錯(cuò)誤發(fā)生了!\n')
                  continue

              try:
                  res_exl = pandas.read_excel(res_path)
              except:
                  workbook = xlwt.Workbook()
                  sheet = workbook.add_sheet('new')
                  col = 0
                  for i in list(pandas.read_excel(aim_path).columns.values):
                      sheet.write(0, col, i)
                      col += 1
                  workbook.save(res_path)
                  res_exl = pandas.read_excel(res_path)
              res_series_data = list(res)
              res_series_data.insert(2, idx)
              res_series = pandas.Series(
                  res_series_data, 
                  index = list(
                      pandas.read_excel(aim_path).columns.values
                  )
              )
              res_exl.loc[str(uuid.uuid1())] = res_series
              try:
                  res_exl.to_excel(res_path, index = False)
              except:
                  print('寫(xiě)入失敗')

          這就是我這次的全部技術(shù)總結(jié),謝謝螞蟻老師提供一個(gè)這么好的平臺(tái)讓我能跟同樣喜歡Python的朋友們交流分享!


          今晚來(lái)螞蟻老師抖音直播間,618有驚喜!!!


          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色直接观看 | 影音先锋啪 | 青草视频亚洲 | 99爱在线观看 | 久久久人体 |