日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 将dataframe中的str都转化成float_【Python自学笔记】一次不太成功的利用Python整理的利润表实践...

發布時間:2025/3/20 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 将dataframe中的str都转化成float_【Python自学笔记】一次不太成功的利用Python整理的利润表实践... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前情提要:蓬佩奧不怕開水燙:XLOOKUP函數簡單使用指南

之前這篇文章里面,是使用的word對報表進行處理,相對簡單快捷;但是,數據量比較大比較復雜的情況下,用word處理起來會有點吃力。

因此,我鉆研了一個下午,寫了個python腳本,中間還遇到不少問題,不過還是寫出來了,以后再處理類似的報表的時候,就不用再打開word了。

信息來源:東方財富Choice數據-2019年電子信息行業財務報表-利潤表

原始Excel有很多問題:股票代碼不是標準的六位數字;萬億不分,沒有單位;有多余的數據行。

這里使用Python 3 的Pandas庫進行整理,主要使用pandas庫基本操作。

#讀取準備好的財務報表 import pandas as pd import re input_file = r"電子信息行業利潤表.xlsx" df = pd.read_excel(input_file)df=df.drop(['序號','相關','公告日期'],axis=1) #刪除不需要的列

然后用format補全六位代碼,在這里居然也卡了很久,最后發現錯誤原因竟然是沒有重新賦值!!

在學習python的過程中,遇到的最大的困難是什么?

#六位股票代碼補全 def six_digits(stock_num):stock_num=str("{0:06d}".format(stock_num))return(stock_num)df['股票代碼']=df['股票代碼'].apply(lambda x:six_digits(x))

把列名稱規范一下。其實這一步我也不是太清楚怎么給每一列批量重命名,有知道的可以告訴我。

#列標題重命名 df=df.rename(columns={'凈利潤':'凈利潤(億元)','凈利潤同比':'凈利潤同比(%)','營業總收入':'營業總收入(億元)','營業總收入同比':'營業總收入同比(%)','營業支出':'營業支出(億元)','銷售費用':'銷售費用(億元)','管理費用':'管理費用(億元)','財務費用':'財務費用(億元)','營業總支出':'營業總支出(億元)','營業利潤':'營業利潤(億元)', '利潤總額':'利潤總額(億元)'})

然后規范一下單位。這里需要用到正則表達式了。

兩個正則表達式,分別匹配所有“萬”“億”為單位的金額;

#引入正則表達式,去除萬億等單位 wan_pattern = re.compile('(?P<amount>(-|)d{1,4}[萬])') yi_pattern = re.compile('(?P<amount>(-|)d*.*d*[億])')

轉換為億元

def amt_process(amt):str1=str(amt)if wan_pattern.search(str1):new_amt=float(str1.rstrip("萬"))/10000 #去掉“萬”結尾并除以10000return('{:.3f}'.format(new_amt)) #保留三位小數elif yi_pattern.search(str1):new_amt=float(str1.rstrip("億")) #直接去掉“億”結尾return('{:.2f}'.format(new_amt)) #保留兩位小數else:return(amt)df=df.applymap(amt_process) #對DataFrame所有元素應用數值處理函數

輸出一下DataFrame,看上去好像沒什么不對:

但是輸出Excel以后,出現了問題

df.to_excel(r"電子信息行業利潤表(已整理).xlsx",sheet_name="利潤表",index=False)

正則表達式處理之后,輸出的全部為文本型數值。

問題出在哪里呢?我們發現,出錯的列,數據類型都不是我們需要的float64

看到了這兩篇文章:

乘風:Pandas數據類型轉換的幾個小技巧

Pandas DataFrame將多列數據一次性從object轉換為datetime

決定試試

amount=[] for x in df.columns.tolist():if "(億元)" in x:amount.append(x)df[amount]=df[amount].apply(pd.to_numeric)

最后輸出

輸出結果如圖

歡迎各位批評指正。

總結

以上是生活随笔為你收集整理的python 将dataframe中的str都转化成float_【Python自学笔记】一次不太成功的利用Python整理的利润表实践...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品成人久久久 | 久久成年 | 午夜精品久久久久久久99热黄桃 | 日本韩国中文字幕 | 国产污视频在线看 | 怡红院成人影院 | 日韩激情av在线 | 久久精品视频在线 | 天天干天天操天天干 | 涩涩涩涩涩涩涩涩涩涩 | 中文字幕日韩在线视频 | 91尤物国产福利在线观看 | 日韩黄色小视频 | 少妇高潮一区二区三区四区 | 欧美人与性动交g欧美精器 国产在线视频91 | 欧美视频一区在线 | 免费黄色美女网站 | 亚洲国产精品无码观看久久 | 国产99精品 | 涩涩视频免费看 | 精品久久久一区二区 | www国产| 伊人久久综合影院 | melody在线高清免费观看 | 四虎影视大全 | 国产麻豆免费观看 | 国产无遮挡免费 | 性爱一级视频 | 性三级视频 | 亚洲精品一级片 | 久久久国产亚洲 | 国产精品国产馆在线真实露脸 | 天天干,天天爽 | 免费福利视频网站 | av视屏| 亚洲一区自拍 | 亚洲v| 三级黄色短视频 | 在线中文字幕亚洲 | 在线免费黄色 | 日本三级中国三级99人妇网站 | 91在线精品秘密一区二区 | 成人7777| 最新中文字幕视频 | 欧美人与禽性xxxxx杂性 | 欧美在线视频第一页 | 又黄又免费的视频 | 蜜桃一区二区 | 久久在线精品视频 | av网站网址 | 天天操天天透 | 黄色一级片免费在线观看 | 5个黑人躁我一个视频 | 色爱五月天| 精品一区二区三区电影 | 奇米97| 国产91精品久久久 | 久久这里都是精品 | 亚洲石原莉奈一区二区在线观看 | 亚洲精品乱码久久久久久按摩观 | 超碰97观看 | 久久偷看各类女兵18女厕嘘嘘 | 清纯粉嫩极品夜夜嗨av | 免费性视频 | 黄色小视频免费观看 | 精品一区二区三区视频日产 | 肌肉猛男裸体gay网站免费 | 国产精品久久免费 | 99re伊人| 永久免费汤不热视频 | 1024欧美| 超碰人人91| 麻豆av在线免费观看 | 91精品国产综合久久福利 | 自拍 偷拍 欧美 | 欧美视频在线观看视频 | 久久香蕉网 | 欧洲精品视频在线 | 男女啪啪十八 | 日日操夜夜爽 | 国内精品视频 | av天天有 | 欧美色图片区 | 成人av手机在线 | 美女一区二区三区四区 | 澳门色网 | 少妇搡bbbb搡bbb搡小说 | 在线观看免费大片 | 91蝌蚪少妇偷拍 | 野花视频在线免费观看 | 丰满少妇被猛烈进入一区二区 | 真实偷拍激情啪啪对白 | 精品一区二区三区成人免费视频 | 亚洲无圣光 | 高清免费视频日本 | 亚洲污视频 | 日韩欧美亚洲国产 | 亚洲av综合色区无码二区爱av | 成人91看片|