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...