Dataframe物件取值與賦值

2021-10-05 12:05:24 字數 2263 閱讀 3269

data=np.around(np.random.randn(3,

4),decimals=2)

data = pd.dataframe(data,columns=

('a'

,'b'

,'c'

,'d'))

print

(type

(data[

'a']

))

直接取出某一列時,型別為series 。

<

class

'pandas.core.series.series'

>

需要注意上述用法在對dataframe 和 series 用的時候的不同,譬如:

data_a = data[

'a']

# 型別為序列,屬性有index 和值

print

(data_a)

print

(data_a[0]

)# 直接為值,展示值的具體型別

print

(type

(data_a[0]

))

結果為:

0

1.76

11.15

20.23

name: a, dtype: float64

1.76

<

class

'numpy.float64'

>

dataframe 取出的結果多於兩列時,其結果為

另外當 .loc 取值具體到某乙個點位時,其所取也為值!

在python 做資料處理的過程中,我們也經常需要對dataframe 框架中的某些列進行直接賦值,我們常見的賦值語句:

#  情形一 : 直接賦值,賦予行列相同的numpy 陣列,成功

data[

['a'

,'b']]

= np.array([1

,2,3

,4,5

,6])

.reshape(3,

2)# 情形二 : 賦值,賦予index相同的數值,成功

data_rep = pd.dataframe(np.array([1

,2,3

,4,5

,6])

.reshape(3,

2),index =[0

,1,2

])data[

['a'

,'b']]

= data_rep

# 情形三 : 賦值,賦予index不同的數值,失敗!

data_rep = pd.dataframe(np.array([1

,2,3

,4,5

,6])

.reshape(3,

2),index =[0

,7,8

])data[

['a'

,'b']]

= data_rep

# 情形四 : 賦值,如果是空的dataframe 賦予dataframe ,成功!

data = pd.dataframe(columns=

('a'

,'b'

,'c'

,'d'))

# 情形五 : 賦值,如果是空的dataframe 賦予numpy陣列,失敗!

data[

['a'

,'b']]

= np.array([1

,2,3

,4,5

,6])

.reshape(3,

2)# 情形六 : 賦值,如果是空的dataframe 必須要賦予陣列,則可以這樣賦予!

data[

'a']

,data[

'b']

= np.array([1

,2,3

]),np.array([4

,5,6

])

總結:

賦值的時候,也可以使用.loc進行賦值。如果賦予單個值,不需要注意該索引是否存在。 但是當索引以列表形式賦予的時候,則該索引必須是存在的!

# 成功!

data.loc[4,

'a']=1

# 失敗!

data.loc[[5

,6,7

],'a']

=1

python合併dataframe物件

每次分析資料過程中,總是會遇到各種問題,一時間想不起來。都說事不過三,這事出了不少次數了,這裡還是記下來,但是可能不那麼全,記下來也僅僅為了以後本人自己需要。這裡宣告如下三個dataframe b np.random.random 3,2 a pd.dataframe b,columns a1 a2...

jquery關於select框的取值和賦值

jquery select id change function 1.為select新增事件,當選擇其中一項時觸發 var checkvalue jquery select id val 2.獲取select選中項的value var checktext jquery select id selec...

DataFrame概念與建立

一 概念 pandas是乙個開源的python資料分析庫。pandas把結構化資料分為了三類 series,1維序列,可視作為沒有column名的 只有乙個column的dataframe dataframe,同spark sql中的dataframe一樣,其概念來自於r語言,為多column並sc...