📚接上文。
初识DataFrame
pd处理数据一般用两种数据结构Series和DataFrame,来看看DataFrame。DataFrame是2维表格结构,带有标签,大小可变,且可以包含异构的数据列。
df1 = pd.DataFrame(np.arange(9).reshape(3,3))
df1
输出:
df的输出
df2 = pd.DataFrame(np.arange(9).reshape(3,3), index=["Mon","Tue","Wed"], columns=['store1', 'store2', 'store3'])
df2
输出:
image.png这玩意可以看做是多个Series的组合。DataFrame的不同列可以是不同的数据类型,如果以Series数组来创建DataFrame,每个Series将成为一行,而不是一列。
store_series = pd.Series([100, 200, 150])
week_series = pd.Series(['Mon', 'Tue', 'Wed'])
df3 = pd.DataFrame([store_series, week_series])
df3
输出
df3示意图
访问 DataFrame
通过上面学习到的方法构建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标识]的方式进行访问数据。df3[3]输出df3的第一个column.
0 100
1 Mon
Name: 0, dtype: object
可以使用df3[column][row]的方式进行更精准的访问
df3[0][1]
输出:返回第一列,第二行的数据
'Mon'
看起来有点反直觉啊,为啥column在前面呢?我不习惯,不喜欢,我就要row在前面。
也可以啊,使用DataFrame.iloc如下:
df3.iloc[[0,1], [0,2]]
输出
0 2
0 100 150
1 Mon Wed
除此之外还可以通过标识的方式访问,什么标识?他和索引有什么不同?
我们之前构建的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
明天将带你进行更复杂的操作。赶紧操练起来吧!~
网友评论