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

          Python私活300元,給Excel表格打標(biāo)簽

          共 2644字,需瀏覽 6分鐘

           ·

          2022-06-25 13:37


          今天,再次收到螞蟻老師推送的python開放需求,主要考驗(yàn)的是python操作excel的知識點(diǎn),單子比較緊急,中午11:30收到,下午3:30要求完成。需求為:運(yùn)用python操作excel文件,按公司分類進(jìn)行數(shù)據(jù)統(tǒng)計(jì),并按條件進(jìn)行打標(biāo)簽。判定的條件主要為:1.高速增長:營業(yè)利潤增長率大于10% 2.ST:連續(xù)兩年?duì)I業(yè)利潤為負(fù) 3.受疫情影響:報(bào)告期年份在2019及以后且營業(yè)利潤為負(fù) 4.扭虧為盈:上期營業(yè)利潤為負(fù)但本期營業(yè)利潤為下 數(shù)據(jù)表如下:通過分析表中數(shù)據(jù)發(fā)現(xiàn):同一公司沒有集中在一起,報(bào)告年份也沒有按序排列,所以,在進(jìn)行標(biāo)簽判定前,首先要對數(shù)據(jù)進(jìn)行處理。

          df=pd.read_excel("基礎(chǔ)數(shù)據(jù).xlsx")
          info={}
          company=set(df["公司名稱"])
          for i in company:
              info[i]=df[df["公司名稱"]==i]["公司名稱"].count()
          df["利潤"]=df["營業(yè)收入(萬元)"]-df["營業(yè)支出(萬元)"]
          df1=df.sort_values(["公司名稱","報(bào)告期年份"])
          以上代碼,首先利用set對df公司名稱去重,得到所有公司名稱,將公司名稱與出現(xiàn)次數(shù)存入字典,為后續(xù)操作提供便利。
          同時(shí)增加利潤列,算出每期利潤值,作為之后標(biāo)簽判斷的主要數(shù)據(jù)。
          接著根據(jù)需求,運(yùn)用sort_values對公司名稱、報(bào)告年份進(jìn)行排序重組,生成新的df1,也是后續(xù)操作的基礎(chǔ)(之前也考慮使用groupby進(jìn)行分組操作,后來改為現(xiàn)在思路)。
          df1.reset_index(drop=True,inplace=True)

          在后來操作中發(fā)現(xiàn),因?yàn)榕判虼騺y了索引,此處需要重置一下索引。接下來便是循環(huán)遍歷打標(biāo)簽:

          for i in range(len(df1.index)):
              if df1.loc[i, "報(bào)告期年份"] >= 2019 and df1.loc[i, "利潤"] < 0:
                  df1.loc[i, "受疫情影響"] = "是"

          for j in info.keys():
              for i in range(len(df1.index)-1):
                  try:
                      if df1.loc[i,"公司名稱"]==j and df1.loc[i+1,"公司名稱"]==j and df1.loc[i,"利潤"]*1.1<df1.loc[i+1,"利潤"] and df1.loc[i+1,"利潤"]>0:
                          df1.loc[i+1,"高速增長"]="是"
                      if df1.loc[i,"公司名稱"]==j and df1.loc[i,"利潤"]<0 and df1.loc[i+1,"利潤"]>0:
                          df1.loc[i+1, "扭虧為盈"] = "是"
                      if df1.loc[i, "公司名稱"] == j and df1.loc[i, "利潤"] < 0 and df1.loc[i + 1, "利潤"] < 0:
                          df1.loc[i+1, "ST"] = "是"
                  except:
                      continue

          第一個(gè)循環(huán)具有通用性,直接遍歷df中所有數(shù)據(jù)即可;接下來的操作,則需要循環(huán)遍歷公司名稱,遍歷年份數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配,對應(yīng)打標(biāo)簽。最后,將打好標(biāo)簽的數(shù)據(jù)處用pandas的to_excel導(dǎo)出為新的EXCEL文件,效果如下:

          謝謝螞蟻老師不斷為大家提供實(shí)戰(zhàn)的機(jī)會,這不僅是python友們學(xué)習(xí)提升的機(jī)會,更是思維改變生活、思維創(chuàng)造生活、思維服務(wù)生活的最好體現(xiàn),相信每一位螞蟻群的朋友們,在帥帥老師的引領(lǐng)下,一定會創(chuàng)造屬于自己的更加美好、更加充實(shí)、更具挑戰(zhàn)的新生活。


          今晚來螞蟻老師抖音直播間,Python帶副業(yè)全套餐有優(yōu)惠?。?!




          瀏覽 66
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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久久成人视频 | 日韩午夜成人福利综合网 | 国产黄色一区二区 | 艹逼的视频 | 中文字幕日产乱码中 |