??接上文等脂。
初識DataFrame
pd處理數(shù)據(jù)一般用兩種數(shù)據(jù)結(jié)構(gòu)Series和DataFrame,來看看DataFrame勿决。DataFrame是2維表格結(jié)構(gòu)茫船,帶有標(biāo)簽琅束,大小可變,且可以包含異構(gòu)的數(shù)據(jù)列算谈。
df1 = pd.DataFrame(np.arange(9).reshape(3,3))
df1
輸出:
df2 = pd.DataFrame(np.arange(9).reshape(3,3), index=["Mon","Tue","Wed"], columns=['store1', 'store2', 'store3'])
df2
輸出:
這玩意可以看做是多個Series的組合涩禀。DataFrame的不同列可以是不同的數(shù)據(jù)類型,如果以Series數(shù)組來創(chuàng)建DataFrame,每個Series將成為一行然眼,而不是一列艾船。
store_series = pd.Series([100, 200, 150])
week_series = pd.Series(['Mon', 'Tue', 'Wed'])
df3 = pd.DataFrame([store_series, week_series])
df3
輸出
訪問 DataFrame
通過上面學(xué)習(xí)到的方法構(gòu)建df3
store_series = pd.Series([100, 200, 150])
week_series = pd.Series(['Mon', 'Tue', 'Wed'])
df3 = pd.DataFrame([store_series, week_series])
df3[0]
可以以df[column標(biāo)識]的方式進行訪問數(shù)據(jù)。df3[3]輸出df3的第一個column.
0 100
1 Mon
Name: 0, dtype: object
可以使用df3[column][row]的方式進行更精準(zhǔn)的訪問
df3[0][1]
輸出:返回第一列高每,第二行的數(shù)據(jù)
'Mon'
看起來有點反直覺啊屿岂,為啥column在前面呢?我不習(xí)慣觉义,不喜歡,我就要row在前面浴井。
也可以啊晒骇,使用DataFrame.iloc如下:
df3.iloc[[0,1], [0,2]]
輸出
0 2
0 100 150
1 Mon Wed
除此之外還可以通過標(biāo)識的方式訪問,什么標(biāo)識磺浙?他和索引有什么不同洪囤?
我們之前構(gòu)建的df2還記得嗎?
df2
輸出
store1 store2 store3
Mon 0 1 2
Tue 3 4 5
Wed 6 7 8
可以通過DataFrame.loc來訪問
df2.loc[["Mon", "Wed"], ['store1', 'store3']]
輸出
store1 store3
Mon 0 2
Wed 6 8
明天將帶你進行更復(fù)雜的操作撕氧。趕緊操練起來吧瘤缩!~