目录

1.Series

1.1Series的创建

 1.2 Series的属性

 2.DataFrame

2.1DataFrame的创建

 2.2 DataFrame的属性

 2.3 DatatFrame索引的设置

3.MultiIndex与Panel

4.基本数据操作

4.1删除一些列

4.2索引操作(先列后行) 

 4.3赋值

4.4排序

4.4.1对内容进行排序

4.4.2对索引进行排序

5.DataFrame运算

5.1算术运算

5.2逻辑运算

 5.3统计运算

6.文件读取与存储


Pandas中一共有三种数据结构,分别为:Series、DataFrame和MultiIndex(老版本中叫Panel )。 其中Series是一维数据结构,DataFrame是二维的表格型数据结构,MultiIndex是三维的数据结构。

1.Series

1.1Series的创建

Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。

python 数据包 ip option 构造发送 python的数据包_开发语言

import pandas as pd
import numpy as np
print(pd.Series(np.arange(10)))

 结果:

0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9
dtype: int32

import pandas as pd
import numpy as np
print(pd.Series([6.7,5.6,3,10,2], index=[1,2,3,4,5]))

 1     6.7
2     5.6
3     3.0
4    10.0
5     2.0
dtype: float64

import pandas as pd
import numpy as np
print( pd.Series({'red':100, 'blue':200, 'green': 500, 'yellow':1000}))

 red        100
blue       200
green      500
yellow    1000
dtype: int64

 1.2 Series的属性

为了更方便地操作Series对象中的索引和数据,Series中提供了两个属性index和values

import pandas as pd
import numpy as np
a=pd.Series({'red':100, 'blue':200, 'green': 500, 'yellow':1000})
print(a.index) #Index(['red', 'blue', 'green', 'yellow'], dtype='object')
print(a.values) #[ 100  200  500 1000]
print(a.values[1]) #200
print(a[1]) #200

 2.DataFrame

DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引

2.1DataFrame的创建

python 数据包 ip option 构造发送 python的数据包_数据结构_02

import pandas as pd
import numpy as np
score = np.random.randint(40, 100, (10, 5))
subjects = ["语文", "数学", "英语", "政治", "体育"]
stu=["同学"+str(i) for i in range(score.shape[0])]
data=pd.DataFrame(score,columns=subjects,index=stu)
print(data)

     语文  数学  英语  政治  体育
同学0  55  48  61  48  88
同学1  97  59  85  89  52
同学2  80  57  96  75  44
同学3  74  63  48  90  99
同学4  97  63  65  55  76
同学5  45  67  61  60  97
同学6  90  60  50  70  42
同学7  55  52  69  58  96
同学8  42  55  54  77  80
同学9  69  76  93  54  84

 2.2 DataFrame的属性

print(data.shape) #(10, 5)
print(data.index) #Index(['同学0', '同学1', '同学2', '同学3', '同学4', '同学5', '同学6', '同学7', '同学8', '同学9'], dtype='object')
print(data.columns) #Index(['语文', '数学', '英语', '政治', '体育'], dtype='object')
print(data.values) #值
print(data.T) #转置
print(data.head(5)) #前5行
print(data.tail(5)) #后啥行

 2.3 DatatFrame索引的设置

修改行列索引值

import pandas as pd
import numpy as np
score = np.random.randint(40, 100, (10, 5))
subjects = ["语文", "数学", "英语", "政治", "体育"]
stu=["同学"+str(i) for i in range(score.shape[0])]
data=pd.DataFrame(score,columns=subjects,index=stu)
print(data) 
stu = ["学生_" + str(i) for i in range(data.shape[0])]
# 必须整体全部修改
data.index = stu
print(data)

3.MultiIndex与Panel

MultiIndex是三维的数据结构; 多级索引(也称层次化索引)是pandas的重要功能,可以在Series、DataFrame对象上拥有2个以及2个以上的索引。

4.基本数据操作

4.1删除一些列

import pandas as pd
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
# data=data.drop(["incom","Fnlwgt"],axis=0)
# 删除一些列,让数据更简单些,再去做后面的操作
data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)
print(data)

4.2索引操作(先列后行) 

import pandas as pd
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
print(data["open"]["2018-02-27"])
print(data.loc['2018-02-27':'2018-02-22', 'open']) #使用loc:只能指定行列索引的名字
print(data.iloc[:3, :5]) ## 使用iloc可以通过索引的下标去获取 获取前3天数据,前5列的结果
#获取行第1天到第4天,['open', 'close', 'high', 'low']这个四个指标的结果
print(data.loc[data.index[0:4], ['open', 'close', 'high', 'low']])
print(data.iloc[0:4, data.columns.get_indexer(['open', 'close', 'high', 'low'])])

 4.3赋值

data.close=1 #赋值 或者data["close"]=1
print(data)

4.4排序

4.4.1对内容进行排序

import pandas as pd
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
print(data.sort_values(by="open", ascending=True).head()) #按照open进行排序 , 使用ascending指定按照升序
# 按照多个键进行排序
data.sort_values(by=['open', 'high'])

4.4.2对索引进行排序

print(data.sort_index()) #期索引原来是从大到小,现在重新排序从,小到大

5.DataFrame运算

5.1算术运算

 比如进行数学运算加上具体的一个数字

import pandas as pd
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
print(data)
print(data['open'].add(1))

5.2逻辑运算

import pandas as pd
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
print(data["open"] > 23)
print(data[data["open"] > 23].head())
data[(data["open"] > 23) & (data["open"] < 24)].head() 
data.query("open<24 & open>23").head() #通过query使得刚才的过程更加方便简单
data[data["open"].isin([23.53, 23.85])] ## 可以指定值进行一个判断,从而进行筛选操作

 5.3统计运算

import pandas as pd
import matplotlib.pyplot as plt

data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
data = data.sort_index()
print(data)
stock_rise = data['p_change']
# plot方法集成了前面直方图、条形图、饼图、折线图
print(stock_rise.cumsum())
# plot显示图形
stock_rise.cumsum().plot()
# 需要调用show,才能显示出结果
plt.show()

 

python 数据包 ip option 构造发送 python的数据包_开发语言_03

 

python 数据包 ip option 构造发送 python的数据包_数学建模_04

 

import pandas as pd
import matplotlib.pyplot as plt
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv")
print(data.max(0))
print(data.min(0))
data.var(0) #方差
data.std(0) # 标准差
print(data.median(0))
data.idxmax(axis=0) # 求出最大值的位置
data.idxmin(axis=0) # 求出最小值的位置

6.文件读取与存储

python 数据包 ip option 构造发送 python的数据包_数据结构_05

 

 

import pandas as pd
data=pd.read_csv("F:/数学建模/机器学习/stock_day.csv", usecols=['open', 'close'])
print(data)