Python数据分析

pandas

2021-06-17  本文已影响0人  celusing

参考:https://geek-docs.com/pandas

一.pandas数据处理简介

1.简介

pandas:是基于:实现的python的一个数据分析包。名字来源:面板数据(panel data)和python数据分析(data analysis)
注意:
DataFrame是一个二维表格。0轴:跨行(down), 1轴:跨列(across)

2.数据结构简介

二.pandas实例

1.数据选择和赋值

1.排序

三.pandas数据处理

1.GroupBy:分组合并

image.png

1)过程和原理
GroupBy操作由三个阶段组成:

2.merge():合并

把两个DF按照一定方式合并成一个DF

3.concat:拼接

1)concatenate()函数
numpy的concatenate()函数就是用于数组的拼接擦欧总
2)concat()函数
pandas库以及它的Series和DataFrame等数据结构实现了带编号的索引,Pandas的concat()函数实现了按索引拼接的功能
例子:

#默认axis=0
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4]), 
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2]))

#按照axis=1
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2], axis=1))

#内连接操作
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
df = pd.concat([ser1, ser2], axis=1)
print(df)
print('--------')
print(pd.concat([ser1, df], axis=1, join='inner'))
image.png

concat():默认按照axis=0这条轴进行拼接数据,并返回Series对象。如果指定axis=1, 返回的结果是DataFrame对象


image.png

concat():默认是外连结操作,把join选项设置为inner,可以执行内连接操作。


image.png
3)等级索引
假如我们想用于拼接的轴上创建等级索引,可以借助keys选项来完成,如下所示:
#axis=0方向,建立额外索引
import pandas as pd
import numpy as np

ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2], keys=[1,2]))

#axis=1方向,建立索引
ser1 = pd.Series(np.random.rand(4), index=[1,2,3,4])
ser2 = pd.Series(np.random.rand(4), index=[5,6,7,8])
print(pd.concat([ser1, ser2], axis=1,keys=[1,2]))
image.png
image.png

4)DataFrame对象的拼接

4.删除数据:

1)删除Series对象数据

5.旋转数据

通常,按行或列调整元素并不总能满足目标,有时,需要按照行重新调整列或者按照列重新调整行的元素
1)DataFrame的转置

import pandas as pd
import numpy as np
# df对象应用stack函数,会把列转变为行,从而得到一个Series对象
dframe = pd.DataFrame(np.arange(9).reshape(3,3),
                      index=['white', 'black', 'red'],
                      columns=['ball', 'pen', 'pencil'])
print(dframe)
print('------------')
print(dframe.stack())

#在这个具有登记索引结构的Series对象上执行unstack()操作,可以重建之前的DataFrame对象,从而可以以数据透视表的形式来展示Series对象中的等级索引结构
dframe = pd.DataFrame(np.arange(9).reshape(3,3),
                      index=['white', 'black', 'red'],
                      columns=['ball', 'pen', 'pencil'])
ser = dframe.stack()
print(ser.unstack())

#出栈可以应用不同的层级,为unstack()函数传入表示层级的编号或名称,即可对相应的层级进行操作。
ser = dframe.stack()
print(ser.unstack(0))
print('------------')
print(ser.unstack(1))
image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读