婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pandas DataFrame 賦值的注意事項說明(index)

pandas DataFrame 賦值的注意事項說明(index)

熱門標簽:工廠智能電話機器人 原裝電話機器人 西藏智能外呼系統(tǒng)五星服務(wù) 在哪里辦理400電話號碼 400電話申請服務(wù)商選什么 平頂山外呼系統(tǒng)免費 清遠360地圖標注方法 千陽自動外呼系統(tǒng) 江蘇客服外呼系統(tǒng)廠家

一 pandas DataFrame一列賦值問題

說明,把b的列賦值給a

情況1:a,b index設(shè)置相同

如下代碼

import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))
b = pd.DataFrame(np.array([11,22,33,44]),index=list('abcd'),columns=['m'])
a['m'] = b['m']
print(a)

上述代碼結(jié)果如下

  w  x  y  z  m
a  0  1  2  3 11
b  4  5  6  7 22
c  8  9 10 11 33
d 12 13 14 15 44

情況一是最基本的情況,結(jié)果也符合預(yù)期,之所以符合預(yù)期是因為a,b都設(shè)有同樣的index,賦值操作按照index來到。如果b不設(shè)置Index,而是使用默認的index呢?

情況2:b的index采用默認值

代碼如下

import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))
b = pd.DataFrame(np.array([11,22,33,44]),columns=['m'])
a['m'] = b['m']
print(a)

結(jié)果如下

  w  x  y  z  m
a  0  1  2  3 NaN
b  4  5  6  7 NaN
c  8  9 10 11 NaN
d 12 13 14 15 NaN

情況二,結(jié)果超出了想象,b中的index為0,1,2,3與a中的index(‘a(chǎn)',‘b',‘c',‘d')不同,在賦值的過程中,是按照a中的index在b中找index相同位置的值,由于index不同,因此,給a賦值為NaN

情況三 : b中的部分Index與a中的相同

代碼如下

import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))
b = pd.DataFrame(np.array([11,22,33,44]),index=list('arpb'),columns=['m'])
a['m'] = b['m']
print(a)

結(jié)果如下

  w  x  y  z   m
a  0  1  2  3 11.0
b  4  5  6  7 44.0
c  8  9 10 11  NaN
d 12 13 14 15  NaN

由情況三結(jié)果可知,只有Index相同的行,賦值才能成功

總結(jié):

從以上可以看出,Pandas DataFrame嚴格按照Index進行賦值,如果Index不同的話,則賦值為NaN

補充:python編程過程中DataFrame修改特定單元格值后原數(shù)據(jù)不變的一個解決方案

最近在參加了一個比賽,里面設(shè)計到數(shù)據(jù)清洗的工作,需要對一些異常值作出修改,往常我都是這樣操作的

df[condition]['column'].iloc[0:3] = ......

或者

df[condition]['column'][0:3] = ......

里面condition代表滿足條件的邏輯表達式,column表示列名

一般還是管用的,但偶爾會出現(xiàn)錯誤,主要是df[condition]這種表達在python里面是不夠規(guī)范的,因此運行以后單元格容易賦值失敗。在嘗試了很多種方法之后,最后還是使用規(guī)范的loc或者iloc表達

df.loc[[row condition],['column']] = ......

例如:

NA.loc[[23,29,49],'北美整體規(guī)模'] = ......

或者

df.iloc[np.where(condition),[1:3]]

注意loc里面接的是具體的行列名稱,iloc里面接的是滿足條件的行列名稱所對應(yīng)的位置數(shù)字列表,切忌弄混!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 對pandas將dataframe中某列按照條件賦值的實例講解
  • pandas.DataFrame 根據(jù)條件新建列并賦值的方法
  • 淺談Pandas dataframe數(shù)據(jù)處理方法的速度比較
  • 使用pandas忽略行列索引,縱向拼接多個dataframe
  • Pandas.DataFrame轉(zhuǎn)置的實現(xiàn)
  • Pandas中DataFrame交換列順序的方法實現(xiàn)
  • 詳解pandas中利用DataFrame對象的.loc[]、.iloc[]方法抽取數(shù)據(jù)
  • Pandas中兩個dataframe的交集和差集的示例代碼

標簽:日照 安慶 西安 白城 隨州 股票 天水 錦州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《pandas DataFrame 賦值的注意事項說明(index)》,本文關(guān)鍵詞  pandas,DataFrame,賦值,的,注意事項,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pandas DataFrame 賦值的注意事項說明(index)》相關(guān)的同類信息!
  • 本頁收集關(guān)于pandas DataFrame 賦值的注意事項說明(index)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 同江市| 榕江县| 乾安县| 湄潭县| 渭源县| 德保县| 平昌县| 金山区| 威宁| 科技| 淮安市| 邵阳市| 江陵县| 石嘴山市| 高密市| 栾城县| 北辰区| 三亚市| 石屏县| 永年县| 铁岭市| 河西区| 牟定县| 双桥区| 萨迦县| 兰考县| 即墨市| 松滋市| 富川| 鱼台县| 油尖旺区| 福泉市| 仪征市| 丹阳市| 荆州市| 宝坻区| 和平区| 舞钢市| 昭平县| 华亭县| 宾阳县|