您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)使用Pandas怎么更改和插入DataFrame數(shù)據(jù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
一、更改DataFrame的某些值
1、更改DataFrame中的數(shù)據(jù),原理是將這部分?jǐn)?shù)據(jù)提取出來,重新賦值為新的數(shù)據(jù)。
2、需要注意的是,數(shù)據(jù)更改直接針對DataFrame原數(shù)據(jù)更改,操作無法撤銷,如果做出更改,需要對更改條件做確認(rèn)或?qū)?shù)據(jù)進(jìn)行備份。
代碼:
import pandas as pd df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age']) print("--------更換單個值----------") # loc和iloc 可以更換單行、單列、多行、多列的值 df1.loc[0,'age']=25 # 思路:先用loc找到要更改的值,再用賦值(=)的方法實現(xiàn)更換值 df1.iloc[0,2]=25 # iloc:用索引位置來查找 # at 、iat只能更換單個值 df1.at[0,'age']=25 # iat 用來取某個單值,參數(shù)只能用數(shù)字索引 df1.iat[0,2]=25 # at 用來取某個單值,參數(shù)只能用index和columns索引名稱 print(df1)
結(jié)果圖:
二、插入新增列、行
代碼:
import pandas as pd df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age']) print("----------在最后新增一列---------------") print("-------案例1----------") # 在數(shù)據(jù)框最后加上score一列,元素值分別為:80,98,67,90 df1['score']=[80,98,67,90] # 增加列的元素個數(shù)要跟原數(shù)據(jù)列的個數(shù)一樣 print(df1) print("-------案例2----------") print("---------在指定位置新增列:用insert()--------") # 在gender后面加一列城市 # 在具體某個位置插入一列可以用insert的方法 # 語法格式:列表.insert(index, obj) # index --->對象 obj 需要插入的索引位置。 # obj ---> 要插入列表中的對象(列名) col_name=df1.columns.tolist() # 將數(shù)據(jù)框的列名全部提取出來存放在列表里 print(col_name) col_name.insert(2,'city') # 在列索引為2的位置插入一列,列名為:city,剛插入時不會有值,整列都是NaN df1=df1.reindex(columns=col_name) # DataFrame.reindex() 對原行/列索引重新構(gòu)建索引值 df1['city']=['北京','山西','湖北','澳門'] # 給city列賦值 print(df1) print("----------新增行---------------") # 重要!!先創(chuàng)建一個DataFrame,用來增加進(jìn)數(shù)據(jù)框的最后一行 new=pd.DataFrame({'name':'lisa', 'gender':'F', 'city':'北京', 'age':19, 'score':100}, index=[1]) # 自定義索引為:1 ,這里也可以不設(shè)置index print(new) print("-------在原數(shù)據(jù)框df1最后一行新增一行,用append方法------------") df1=df1.append(new,ignore_index=True) # ignore_index=True,表示不按原來的索引,從0開始自動遞增 print(df1)
結(jié)果圖:
看完上述內(nèi)容,你們對使用Pandas怎么更改和插入DataFrame數(shù)據(jù)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。