小編接下來就會給大家講解一些內(nèi)容,講解一些關(guān)于數(shù)據(jù)庫的一些內(nèi)容,包括數(shù)據(jù)中的行列要求,那么,怎么使用Python Pandas去進(jìn)行添加行和列呢?下面給大家詳細(xì)的解答下。
人們總是會有一個遺忘規(guī)律的,比如會忘記相關(guān)數(shù)據(jù)庫的一些內(nèi)容,那么,我們怎么進(jìn)行學(xué)習(xí)呢,怎么做到以后也能及時的復(fù)習(xí)呢?那我們來看看pandas添加數(shù)據(jù)的一些方法
創(chuàng)建一個dataframe
1.增加列數(shù)據(jù)
為dataframe增加一列新數(shù)據(jù),需要確保增加列的長度與原數(shù)據(jù)保持一致
如果是增加一列相同數(shù)據(jù)可以直接輸入
df['level']=1
插入的數(shù)據(jù)是需要通過源數(shù)據(jù)進(jìn)行計算的(eval這個方法感覺比較好用)
df.eval('grade_level=grade*level',inplace=True)
使用insert函數(shù)可以在指定列添加列數(shù)據(jù),這個函數(shù)有好幾個參數(shù),使用更加靈活
df.insert(loc,column,value,allow_duplicates=False)
增加列數(shù)據(jù)的方法還有很多,我只把自己比較常用的記錄了下來
2.增加行數(shù)據(jù)
比較多的方法有l(wèi)oc、iloc、append都行,先看loc這個方法,它是通過df.loc[index名稱]=[對應(yīng)的數(shù)據(jù)],這個方法要主要index如果是與原表中有重復(fù),則會將原數(shù)據(jù)修改,如果沒有重復(fù)的話,就是在最后面添加對應(yīng)數(shù)據(jù),其中的index名稱是根據(jù)輸入的寫入,需要注意!
第二個是通過df.iloc[index位置]=[對應(yīng)數(shù)據(jù)]進(jìn)行修改這個方法是對原有數(shù)據(jù)進(jìn)行修改,并不是增加一行數(shù)據(jù)
使用append()函數(shù)添加一行數(shù)據(jù),其中ignore_index=True,否則報錯
append()往往做法比較多的是添加一個另外一個dataframe的數(shù)據(jù)到原來數(shù)據(jù)上,爬蟲時候用得比較多,將每一頁的數(shù)據(jù)保存到一個臨時的dataframe中,將這個臨時的dataframe數(shù)據(jù)插入到總的dataframe后面,最后得到總的數(shù)據(jù),且效率較高
當(dāng)然還有concat、merge等方法可以達(dá)到相同的效果,下次有機(jī)會在繼續(xù)學(xué)習(xí)
補(bǔ)充:pandas根據(jù)現(xiàn)有列新添加一列
pandas中一個Dataframe,經(jīng)常需要根據(jù)其中一列再新建一列,比如一個常見的例子:需要根據(jù)分?jǐn)?shù)來確定等級范圍,下面我們就來看一下怎么實(shí)現(xiàn)。
def getlevel(score): if score<60: return"bad" elif score<80: return"mid" else: return"good" def test(): data={'name':['lili','lucy','tracy','tony','mike'], 'score':[85,61,75,49,90] } df=pd.DataFrame(data=data) #兩種方式都可以 #df['level']=df.apply(lambda x:getlevel(x['score']),axis=1) df['level']=df.apply(lambda x:getlevel(x.score),axis=1) print(df) 上面代碼運(yùn)行結(jié)果 name score level 0 lili 85 good 1 lucy 61 mid 2 tracy 75 mid 3 tony 49 bad 4 mike 90 good
要實(shí)現(xiàn)上面的功能,主要是使用到dataframe中的apply方法。
上面的代碼,對dataframe新增加一列名為level,level由分?jǐn)?shù)一列而來,如果小于60分為bad,60-80之間為mid,80以上為good。
其中axis=1表示原有dataframe的行不變,列的維數(shù)發(fā)生改變。
本篇文章,小編就為大家介紹到這里了,希望能給大家?guī)砀嗟膸椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/127980.html
為什么你需要pandas 大家好,今天想和大家分享一下有關(guān)pandas的學(xué)習(xí)新的,我因工作需要,從去年12月開始接觸這個非常好用的包,到現(xiàn)在為止也是算是熟悉了一些,因此發(fā)現(xiàn)了它的強(qiáng)大之處,特意想要和朋友們分享,特別是如果你每天和excel打交道,總是需要編寫一些vba函數(shù)或者對行列進(jìn)行g(shù)roupby啊,merge,join啊之類的,相信我,pandas會讓你解脫的。 好啦,閑話少說,這篇文章的基礎(chǔ)...
摘要:數(shù)據(jù)分析的發(fā)展方向一般有商業(yè)方向,行業(yè)分析業(yè)務(wù)方向,和機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘方向。機(jī)器學(xué)習(xí)的書籍推薦統(tǒng)計學(xué)習(xí)方法,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)實(shí)戰(zhàn)三本書。 作者:xiaoyu 微信公眾號:Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 上一篇主要分享了博主親身轉(zhuǎn)行數(shù)據(jù)分析的經(jīng)歷: 【從零學(xué)起到成功轉(zhuǎn)行數(shù)據(jù)分析,我是怎么做的?】 本篇繼上一篇將分享轉(zhuǎn)行數(shù)據(jù)分析的一些經(jīng)驗(yàn)和學(xué)習(xí)方法,看完這篇你將會解...
摘要:全棧數(shù)據(jù)之門前言自強(qiáng)不息,厚德載物,自由之光,你是我的眼基礎(chǔ),從零開始之門文件操作權(quán)限管理軟件安裝實(shí)戰(zhàn)經(jīng)驗(yàn)與,文本處理文本工具的使用家族的使用綜合案例數(shù)據(jù)工程,必備分析文件探索內(nèi)容探索交差并補(bǔ)其他常用的命令批量操作結(jié)語快捷鍵,之門提高效率光 showImg(https://segmentfault.com/img/bVK0aK?w=350&h=350); 全棧數(shù)據(jù)之門 前言 自強(qiáng)不息,...
閱讀 926·2023-01-14 11:38
閱讀 899·2023-01-14 11:04
閱讀 758·2023-01-14 10:48
閱讀 2063·2023-01-14 10:34
閱讀 965·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 590·2023-01-14 10:02