pandas之DataFrame的创建和增删改查

在学习的时候,需要时时总结。这段时间学习数据处理,故对pandas中的DataFrame的一些基本用法进行总结。

首先介绍一下DataFrame,这是一个表格型数据,每一列可以是不同的类型值。

 原文:https://blog.csdn.net/zutsoft/article/details/51483710 

           https://blog.csdn.net/Jakob_Hu/article/details/78347278

构建DataFrame

1.标准格式创建:

   DataFrame 构造器参数:DataFrame(data=[],index=[],coloumns=[])  data是表示数据

>>> from pandas import DataFrame
>>> df = DataFrame(np.arange(16).reshape(4,4),index=['a','b','c','d'],columns =['one','two','three','four'])
>>> df
   one  two  three  four
a    0    1      2     3
b    4    5      6     7
c    8    9     10    11
d   12   13     14    15

2.传入等长的列表组成的字典来创建:

>>> data = {'a':[5,8],'b':[1,0]}
>>> df = DataFrame(data)
>>> df
   a  b
0  5  1
1  8  0

同时也可以指定列索引序列

>>> df = DataFrame(data,columns = ['b','a'])
>>> df
   b  a
0  1  5
1  0  8
>>> 

3 传入嵌套字典(字典的值也是字典)创建DataFrame

   其中我们可以知道,外层键是列索引,内层子键是行索引

>>> nest_dict={'shanghai':{2015:100,2016:101},'beijing':{2015:102,2016:103}}

>>> df = DataFrame(nest_dict)
>>> df
      shanghai  beijing
2015       100      102
2016       101      103
>>> nest_dict={'shanghai':{2015:100,2016:101},'beijing':{2015:102,2014:103}}
>>> df = DataFrame(nest_dict)
>>> df
      shanghai  beijing
2014       NaN    103.0
2015     100.0    102.0
2016     101.0      NaN

另外:

pandas之DataFrame的创建和增删改查_第1张图片

二. 操作‘增’,‘删’

 1.增加列。直接为不存在的列赋值就会创建新的列

df['Hefei'] = 1
>>> df
      shanghai  beijing  Hefei
2014       NaN    103.0      1
2015     100.0    102.0      1
2016     101.0      NaN      1

2.增加行

   利用loc方法,当然也可以使用append方法,不过传入的需要是字典形式。

>>> df.loc[4]={'shanghai':5,'beijing':13, 'Hefei':50}
>>> df
      shanghai  beijing  Hefei
2014       NaN    103.0      1
2015     100.0    102.0      1
2016     101.0      NaN      1
4          5.0     13.0     50
>>> df.loc[2]={'shanghai':5,'beijing':13, 'Hefei':50}
>>> df
      shanghai  beijing  Hefei
2014       NaN    103.0      1
2015     100.0    102.0      1
2016     101.0      NaN      1
4          5.0     13.0     50
2          5.0     13.0     50

3.删除行和列:axis代表选中的是行还是列,列是1,行是2.inplace代表有没有真正删除

>>> df.drop('Hefei',axis = 1,inplace = True)
>>> df
     shanghai beijing
2014      NaN     103
2015      100     102
2016      101     NaN
4           5      13
2           5      13
3           5      13
df.drop(3,axis = 0,inplace = True)
>>> df
     shanghai beijing
2014      NaN     103
2015      100     102
2016      101     NaN
4           5      13
2           5      13

 

三.改

改操作主要记住就是从列开始

>>> df
     shanghai beijing
2014        6       6
2015      100     102
2016      101     NaN
4           5      13
2           5      13
>>> df[:3]
     shanghai beijing
2014        6       6
2015      100     102
2016      101     NaN
>>> df[1] = 3
>>> df
     shanghai beijing  1
2014        6       6  3
2015      100     102  3
2016      101     NaN  3
4           5      13  3
2           5      13  3

四.查

选取数据 是DataFrame的重点,常用的有 位置切片 和 标签切片,位置切片遵循Python的切片规则,包括起始位置,但不包括结束位置;但标签切片则同时包括起始标签和结束标签。之所以如此设计是因为在使用标签切片时,通常我们不知道标签的顺序,如果不包含结束标签,很难确定结束标签的前一个标签是什么。
注释: 标准Python / Numpy表达式可以完成这些数据选择工作, 但在生产代码中, 我们推荐使用优化的pandas数据访问方法, .at, .iat, .loc, .iloc 和 .ix.

     查询列的时候,可以直接使用[]进行选取查询,可以选择单列和多列,也可以使用‘.’查询,不过使用‘.’会造成一些关键字的冲突,所以不建议

>>> df
     shanghai beijing    1
2014        6       6  NaN
2015      100     102  NaN
2016      101     NaN  NaN
4           5      13  NaN
2           5      13  9.0
>>> df[['shanghai','beijing']]
     shanghai beijing
2014        6       6
2015      100     102
2016      101     NaN
4           5      13
2           5      13
>>> df.shanghai
2014      6
2015    100
2016    101
4         5
2         5
Name: shanghai, dtype: object

也可以使用loc进行读取。也可以使用ix


 

你可能感兴趣的:(Data_Science)