pandas 必知必会

pandas新手入门教程二

2019-05-07  本文已影响153人  人工智能人话翻译官

📚接上文。

初识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

明天将带你进行更复杂的操作。赶紧操练起来吧!~

上一篇 下一篇

猜你喜欢

热点阅读