資料分析之Pandas 02多層次化索引和拼接

2021-08-09 23:04:53 字數 1380 閱讀 4002

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