每日10行代码165:认识pandas中的DataFrame 数据结构2——DateFrame中的定位

接上一章
能创建DateFrame后,自然会关注怎么从DateFrame中取到数据。首先可以用字典的方式:

In [73]: frame2
Out[73]:
       year   state  pop dept
one    2000    Ohio  1.5  NaN
two    2001    Ohio  1.7  NaN
three  2002    Ohio  3.6  NaN
four   2001  Nevada  2.4  NaN
five   2002  Nevada  2.9  NaN
six    2003  Nevada  3.2  NaN

In [76]: frame2['state']
Out[76]:
one        Ohio
two        Ohio
three      Ohio
four     Nevada
five     Nevada
six      Nevada
Name: state, dtype: object

从这方面看,可以把DateFrame当成一个二维字典,这个字典存放了很多以列为单位 的字典,然后这个小字典又存放了以行为单位的小字典 。

In [77]: frame2['state']['one']
Out[77]: 'Ohio'

这种方式 默认的是先取列,你不能写成 frame2['one'],不然会报 KeyError

In [78]: type(frame2['state'])
Out[78]: pandas.core.series.Series

每一列其实是一个Series对象,所以也适用对Series的操作。并且这一Series对象会自动赋予一个等于列名的name属性。

获取多列:

In [84]: frame2[['state','pop']]
Out[84]:
        state  pop
one      Ohio  1.5
two      Ohio  1.7
three    Ohio  3.6
four   Nevada  2.4
five   Nevada  2.9
six    Nevada  3.2

注意方括号中是一个数组。

获取多列多行:

In [85]: frame2[['state','pop']][0:5]
Out[85]:
        state  pop
one      Ohio  1.5
two      Ohio  1.7
three    Ohio  3.6
four   Nevada  2.4
five   Nevada  2.9

也可以用属性连接的方式来获取一列,比如说:

In [86]: frame2.state
Out[86]:
one        Ohio
two        Ohio
three      Ohio
four     Nevada
five     Nevada
six      Nevada
Name: state, dtype: object

这种方式只适合列名是一个合法的变量名的时候。

那么,如果只想去一某一行或某几行的数据呢?可以这样操作:

In [88]: frame2[0:3]
Out[88]:
       year state  pop dept
one    2000  Ohio  1.5  NaN
two    2001  Ohio  1.7  NaN
three  2002  Ohio  3.6  NaN

DataFrame数据也可以看成是一个列表,可以用切片的方式获取DataFrame 行,或者用索引的方式:

In [89]: frame2['one':'three']
Out[89]:
       year state  pop dept
one    2000  Ohio  1.5  NaN
two    2001  Ohio  1.7  NaN
three  2002  Ohio  3.6  NaN

获取一行,也可以用下面的方式:

In [93]: frame2.loc['three']
Out[93]:
year     2002
state    Ohio
pop       3.6
dept      NaN
Name: three, dtype: object

注意,这跟直接用索引得来的数据是有所区别的

In [94]: type(frame2.loc['three'])
Out[94]: pandas.core.series.Series

In [95]: type(frame2[0:3])
Out[95]: pandas.core.frame.DataFrame

Original: https://blog.csdn.net/weixin_44981444/article/details/124565147
Author: 天天卡丁
Title: 每日10行代码165:认识pandas中的DataFrame 数据结构2——DateFrame中的定位

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/677825/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球