在学习的时候,需要时时总结。这段时间学习数据处理,故对pandas中的DataFrame的一些基本用法进行总结。
首先介绍一下DataFrame,这是一个表格型数据,每一列可以是不同的类型值。
原文:https://blog.csdn.net/zutsoft/article/details/51483710
https://blog.csdn.net/Jakob_Hu/article/details/78347278
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
另外:
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