1.隱式構造
series也可以建立多層索引
df = dataframe(np.random.rand(4,2),
index=[['a','a','b','b'],[1,2,1,2]],
columns=['data1','data2'])
df
2.顯示構造(multilndex)
- pd.multiindex.from_arrays
- pd.multiindex.from_tuples
- pd.multiindex.from_product
除了行索引index,列索引columns也能用同樣的方法建立多層索引
series的操作:【重要】對於series來說,直接中括號與使用.loc()完全一樣,因此,推薦使用中括號索引和切片
dataframe的操作:可以直接使用列名稱來進行列索引.
使用行索引需要用ix(),loc()等函式
【極其重要】推薦使用loc()函式.
注意在對行索引的時候,若一級行索引還有多個,對二級行索引會遇到問題!也就是說,無法直接對二級索引進行索引,必須讓二級索引變成一級索引後才能對其進行索引!
【小技巧】使用unstack()的時候,level等於哪乙個,哪乙個就消失,出現在列裡
【注意】
需要指定level
【小技巧】和unstack()相反,聚合的時候,level等於哪乙個,哪乙個就保留
使用pd.concat()級聯
簡單級聯:
df1 = make_df('ab',[1,2])
df2 = make_df('ab',[3,4])
display(df1,df2,pd.concat([df1,df2]))
不匹配級聯:
不匹配指的是級聯的維度的索引不一致。例如縱向級聯時列索引不一致,橫向級聯時行索引不一致
使用pd.merge()合併
1. 一對一合併
1. 多對一合併
1. 多對多合併
1. key的規範化
- 使用on=顯式指定哪一列為key
- 使用left_on和right_on指定左右兩邊的列作為key
1. 內合併和外合併
- 內合併:只保留兩者都有的key(預設模式)
- 外合併 how=』outer』:補nan
- 左合併、右合併:how=』left』,how=』right』
1. 列的衝突解決
- 當列衝突時,即有多個列名稱相同時,需要使用on=來指定哪乙個列作為key
現學現賣之pandas 02資料的選擇
1 series and dataframe series,只是乙個一維資料結構,它由index和value組成。dataframe,是乙個二維結構,除了擁有index和value之 外,還擁有column。數值提取的方法並不唯一,形式也並不固定,這裡列出的也並非全部,有興趣可以繼續探索。2 取值i...
資料分析之Pandas
from pandas import series,dataframe import pandas as pd import numpy as np states california ohio oregon texas year 2000,2001,2002,2003 value 35000,71...
資料分析之pandas
pandas是基於numpy構建的庫,擁有兩種資料結構 series和dataframe series 就是一維陣列 dataframe 是二維陣列series in 1 from pandas import series,dataframe in 2 import pandas as pd in ...