欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Pandas修改DataFrame中某一列的值

 更新時(shí)間:2022年12月22日 10:17:22   作者:Sun_Sherry  
DataFrame是Pandas中的主要數(shù)據(jù)結(jié)構(gòu)之一,下面這篇文章主要給大家介紹了關(guān)于使用Pandas修改DataFrame中某一列的值的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

寫這篇博客主要是因?yàn)樵谛薷腄ataFrame列值的時(shí)候經(jīng)常遇到bug,但到目前還沒把這種錯(cuò)誤復(fù)現(xiàn)出來。

DataFrame是Pandas中的主要數(shù)據(jù)結(jié)構(gòu)之一,本篇博客主要介紹如何DataFrame中某一列的值進(jìn)行修改。

1 常規(guī)方法

這部分主要介紹修改DataFrame列值的常規(guī)方法。為了方便后續(xù)說明先構(gòu)建如下數(shù)據(jù):

import pandas as pd
import numpy as np
df=pd.DataFrame([['A',1],['B',2],['C',5],['D',4],['E',10],['F',13],['G',8]],
                columns=['col_1','col_2'],
                index=list('abcdefg'))

df結(jié)果如下:

  • 使用常量修改DataFrame列的值

使用一個(gè)常量對(duì)DataFrame列中的數(shù)據(jù)進(jìn)行修改時(shí),代碼舉例如下:

df1=df.copy()
df1['col_1']='H'
df1.loc[['a','c','d'],'col_2']=100 #將指定索引的列值進(jìn)行修改
df1.iloc[4:,-1]=200 

df1的結(jié)果如下:

  • 使用List\array修改DataFrame列的值

當(dāng)需要對(duì)DataFrame列中的多個(gè)值進(jìn)行修改時(shí),可以使用List或array等變量型數(shù)據(jù)來對(duì)其進(jìn)行修改。具體代碼如下:

df2=df.copy()
df2['col_1']=list(range(7))
df2.loc[df2.index<='d','col_2']=np.array([15,20,25,30])
df2.iloc[4:,-1]=np.array([10,5,0])

df2的結(jié)果如下:

  • 使用Series/DataFrame修改DataFrame列的值

除了以上兩種數(shù)據(jù)類型之外,還可以使用Series型數(shù)據(jù)來修改DataFrame列的值。但使用這種方法時(shí),需要索引對(duì)齊,否則會(huì)出錯(cuò)。具體舉例如下:

df3=df.copy()
df3['col_1']=pd.Series([1,2,3,4,5,6,7]) #索引不對(duì)齊時(shí)不會(huì)報(bào)錯(cuò),但沒有成功修改列值。
df3.loc[['a','b','c'],'col_2']=pd.Series([100,200,300],index=list('abc'))
df3.iloc[3:,-1]=pd.DataFrame([[4000],[5000],[6000],[7000]],index=list('cdef'))

其結(jié)果如下:

2. replace方法

DataFrame對(duì)象自帶的方法replace()也可以實(shí)現(xiàn)列值的修改。該方法中的參數(shù)主要有以下幾個(gè):

參數(shù)作用
to_replace確定需要修改列值的數(shù)據(jù)。可接受的數(shù)據(jù)類型有:str, regex, list, dict, Series, int, float, or None
value指定修改后的值??山邮艿臄?shù)據(jù)類型有:scalar, dict, list, str, regex, default None
inplace是否本地置換
limit指定前后填充的最大次數(shù)
regex正則表達(dá)式符號(hào)。如果需要在to_replace中使用字符串形式的正則表達(dá)式對(duì)數(shù)據(jù)進(jìn)行篩選的話,需要將其設(shè)置為True。
method填充方式。‘pad’, ‘ffill’, ‘bfill’, None

創(chuàng)建如下數(shù)據(jù),具體如下:

df=pd.DataFrame([['A','A'],['B','B'],['C',5],['D',4]],
                columns=['col_1','col_2'],
                index=list('abcd'))

df的結(jié)果如下:

  • 對(duì)整個(gè)DataFrame中的指定數(shù)據(jù)進(jìn)行替換
#A替換為aaa,B替換為bbb,4替換為100
df_1=df.replace(to_replace=['A','B',4],value=['aaa','bbb',100])
#將A替換為AAAA
df_2=df.replace(to_replace='A',value='AAAA')
#將A替換為AAAAA,5替換為2000
df_3=df.replace(to_replace={"A":'AAAAA',5:2000})

其結(jié)果如下:

  • 對(duì)DataFrame中的不同列指定不同的替換方式
#對(duì)于col_1列:將A替換為1,B替換為2
#對(duì)于col_2列:將A替換為100,B替換為200
df_4=df.replace({"col_1":{'A':1,'B':2},"col_2":{"A":100,"B":200}})

其結(jié)果如下:

  • 使用正則表達(dá)式篩選數(shù)據(jù)
#將A\B替換成new
df_5=df.replace(to_replace=r'[AB]',value='new',regex=True)

其結(jié)果如下:

補(bǔ)充:DataFrame修改某一行某一列的值[坑點(diǎn)]

# df.iloc[index]['column_name'] = val 這種方式是錯(cuò)誤的
df['column_name'].iloc[i] = val # 正確

總結(jié) 

到此這篇關(guān)于使用Pandas修改DataFrame中某一列值的文章就介紹到這了,更多相關(guān)Pandas修改DataFrame某一列的值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python魔法方法-自定義序列詳解

    python魔法方法-自定義序列詳解

    下面小編就為大家?guī)硪黄猵ython魔法方法-自定義序列詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • 對(duì)Python 多線程統(tǒng)計(jì)所有csv文件的行數(shù)方法詳解

    對(duì)Python 多線程統(tǒng)計(jì)所有csv文件的行數(shù)方法詳解

    今天小編就為大家分享一篇對(duì)Python 多線程統(tǒng)計(jì)所有csv文件的行數(shù)方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置

    詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置

    這篇文章主要介紹了詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Python快速排序算法實(shí)例分析

    Python快速排序算法實(shí)例分析

    這篇文章主要介紹了Python快速排序算法,簡單說明了快速排序算法的原理、實(shí)現(xiàn)步驟,并結(jié)合具體實(shí)例分析了Python實(shí)現(xiàn)快速排序的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • python 調(diào)用HBase的簡單實(shí)例

    python 調(diào)用HBase的簡單實(shí)例

    下面小編就為大家?guī)硪黄猵ython 調(diào)用HBase的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • pytorch如何自定義數(shù)據(jù)集

    pytorch如何自定義數(shù)據(jù)集

    這篇文章主要介紹了pytorch自定義數(shù)據(jù)集,在識(shí)別手寫數(shù)字的例子中,數(shù)據(jù)集是直接下載的,但如果我們自己收集了一些數(shù)據(jù),存在電腦文件夾里,我們該如何把這些數(shù)據(jù)變?yōu)榭梢栽赑yTorch框架下進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)集呢,即如何自定義數(shù)據(jù)集呢,需要的朋友可以參考下
    2024-01-01
  • Python編程中對(duì)super函數(shù)的正確理解和用法解析

    Python編程中對(duì)super函數(shù)的正確理解和用法解析

    可能有人會(huì)想到,Python中既然可以直接通過父類名調(diào)用父類方法為什么還會(huì)存在super函數(shù)?其實(shí),很多人對(duì)Python中的super函數(shù)的認(rèn)識(shí)存在誤區(qū),本文我們就帶來在Python編程中對(duì)super函數(shù)的正確理解和用法解析
    2016-07-07
  • 更改Python的pip install 默認(rèn)安裝依賴路徑方法詳解

    更改Python的pip install 默認(rèn)安裝依賴路徑方法詳解

    今天小編就為大家分享一篇更改Python的pip install 默認(rèn)安裝依賴路徑方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python+PyQt5制作一個(gè)圖片查看器

    Python+PyQt5制作一個(gè)圖片查看器

    在PyQt中可以使用很多方式實(shí)現(xiàn)照片查看器,本文將利用QGraphicsView類來實(shí)現(xiàn)圖片查看器的制作,感興趣的小伙伴快跟隨小編一起動(dòng)手試一試
    2022-03-03
  • Python 日志logging模塊用法簡單示例

    Python 日志logging模塊用法簡單示例

    這篇文章主要介紹了Python 日志logging模塊用法,結(jié)合簡單實(shí)例形式分析了Python 日志logging模塊功能、原理及日志輸出到控制臺(tái)與文件的相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10

最新評(píng)論