? ? ? 在數(shù)據(jù)分析的過(guò)程中,往往需要用到DataFrame的類型,因?yàn)檫@個(gè)類型就像EXCEL表格一樣,便于我們個(gè)中連接、計(jì)算、統(tǒng)計(jì)等操作。在數(shù)據(jù)分析的過(guò)程中,避免不了的要對(duì)數(shù)據(jù)進(jìn)行遍歷,那么,DataFrame如何遍歷呢?之前,小白每次使用時(shí)都是Google或百度,想想,還是總結(jié)一下~
? ? ? 小白經(jīng)常用到的有三種方式,如下:
首先,先讀入一個(gè)DataFrame
import pandas as pd
#讀入數(shù)據(jù)
df = pd.read_table('d:/Users/chen_lib/Desktop/tmp.csv',sep=',', header='infer')
df.head()
-----------------result------------------
mas effectdate num
0 371379 2019-07-15 361
1 344985 2019-07-13 77
2 425090 2019-07-01 105
3 344983 2019-02-19 339
4 432430 2019-02-21 162
1.DataFrame.iterrows()
? ? ? ?將DataFrame的每一行迭代為{索引,Series}對(duì),對(duì)DataFrame的列,用row['cols']讀取元素
for index, row in df.iterrows():
print(index,row['mas'],row['num'])
------------result---------------
0 371379 361
1 344985 77
2 425090 105
3 344983 339
4 432430 162
從結(jié)果可以看出,第一列就是對(duì)應(yīng)的index,也就是索引,從0開(kāi)始,第二第三列是自定義輸出的列,這樣就完成了對(duì)DataFrame的遍歷。
2.DataFrame.itertuples()
? ? ? ?將DataFrame的每一行迭代為元祖,可以通過(guò)row['cols']對(duì)元素進(jìn)行訪問(wèn),方法一效率高。
for row in df.itertuples():
print(getattr(row, 'mas'), getattr(row, 'num')) # 輸出每一行
-------------result-----------------
371379 361
344985 77
425090 105
344983 339
432430 162
從結(jié)果可以看出,這種方法是沒(méi)有index的,直接輸出每一行的結(jié)果。
3.DataFrame.iteritems()
? ? ?這種方法和上面兩種不同,這個(gè)是按列遍歷,將DataFrame的每一列迭代為(列名, Series)對(duì),可以通過(guò)row['cols']對(duì)元素進(jìn)行訪問(wèn)。
for index, row in df.iteritems():
print(index,row[0],row[1],row[2])
-------------result------------------
masterhotelid 371379 344985 425090
effectdate 2019-07-15 2019-07-13 2019-07-01
quantity 361 77 105
從結(jié)果可以看出,index輸出的是列名,row是用來(lái)讀取第幾行的數(shù)據(jù),結(jié)果是按列展示
? ? ? ?以上就是小白經(jīng)常用到的遍歷DataFrame的方法啦,歡迎大家補(bǔ)充哦~
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
