pandas
qq:1328142689
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-acQvMHOG-1644136790387)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220131014529434.png)]
使用时先导入Pandas
import pandas as pd
1.创建
列表的创建
Series 类似于列表,相当于numpy中的一维数组
Series 由索引和列表组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ea5rlvar-1644136790389)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220131020110026.png)]
arr = [1,2,3]
arr = pd.Series(arr)
print(arr)
改变索引值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P5abP8i4-1644136790389)(C:/Users/Administrator/Desktop/1/image-20220131021748070.png)]
arr = [1,2,3]
arr01 = pd.Series(arr,index = {'a','b','c'})
print(arr01)
索引
# 1.单值索引
print(arr01[0])
print(arr01['2021-01-02'])
# 2.单值切片
# 根据需要做筛选的动作
print(arr01[0:10])
# 从02号开始到25号的日期
print(arr01['2021-01-02':'2021-01-25 '])
注意: 一个有数据、一个没数据,相加,会得到nan结果
数据帧的创建
import pandas as pd
import numpy as np
s1 = pd.DataFrame(np.arange(12).reshape(3,4))
print(s1)
使用列表创建
s1 = pd.DataFrame([1,2],[1,2],columns = ['第一列','第二列'],dtype = float)
使用字典创建
dict_data = {
'student':["Li Lei","Han Meimei","Tom"],
'score' :[95,98,92],
'gender':['M','F','M']
}
df_data = pd.DataFrame(dict_data)
print(df_data)
输出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ai3fVcUh-1644136790390)(C:/Users/Administrator/Desktop/1/image-20220131153849429.png)]
注意:没有对应部分的数值为NaN
pandas 可以使用loc 属性返回指定的行数,如果没有索引值,第一行索引为0 ,第二行索引为1
import pandas as pd
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)
# 返回第一行
print(df.loc[0])
# 返回第二行
print(df.loc[1])
在左上角添加一个行标签或者列标签
df.index.name = '行标签的名字'
df.columns.name = '列标签名字'
查看数据帧的前5行和后五行(默认情况下)
#前五行
df.head()
#后五行
df.tail()
查看序列和数据帧的信息
df.info()
查看基本的统计描述信息(包括数量、平均值、最小值和最大值等)
df.describe()
数据的基本类型转化
df['score']= df['score'].astype('int')
使用lambda对字符串进行操作,将字符串中 的逗号消去
def fun(df01):
df = df01.replace(',','')
return np.float(df)
df['bos'] = df['bos'].apply(fun)
数据帧的升维
df.index = df.MultiIndex.from_tuples()
2.文件的保存
Excel的格式
将数据帧存入到excel文件中
import pandas as pd
# 使用创建
s2 = pd.DataFrame([[1,2],[2,3]])
# 保存
s2.to_excel('df.xlsx',sheet_name = '001')
# index = false
# 只有列标签
将数据从.xlsx文件中读取出来
# 文件读取
s1 = pd.read_excel('df.xlsx')
s1
# 读取成功
csv文件
s1.to_csv('003.csv',encoding = 'utf-8')
s2 = pd.read_csv('003.csv')
s2
csv文件读取出来后,将一个数据添加到另一个数据下面
df3.append(df4)
# 添加到df3的下面
3.对数据库的操作
3.1mssql
首先要导入连接数据库的包
import pymssql
//这个包是连接mssql 数据库 的
//如果在执行的时候没有,要在Anaconda 中进行下载
//下载的代码为:
//pip install pymssql
//下载后会显示successful
接下来要连接数据库文件
conn = pymssql.connect("location","se",'1')
cursor = conn.cursor()
if cursor :
print("successfully")
创建数据库
conn.autocommit(True)
cursor.execute ('''
CREATE DATABASE Test05
ON
(
name = "test05",
filename = "D:\MSSQL\test05data.MDF"
)
log on
(
name = "testlog05",
filename = "D:\MSSQL\test05Log.LDF"
)
''')
# 提交
conn.autocommit(False)
# 关闭
conn.close()
读取数据中的数据
import pandas as pd
import mssql
conn = pymssql.connect('localhost','sa','1','Test01')
driver = conn.cursor()
arr = pd.read_sql('select * from test01',conn)
print(arr)
3.2mysql 数据库
# 在mysql 创建数据库
import pymysql
host = 'localhost'
port = 3306
user ='root'
password = '123456'
conn = pymysql.connect(host=host,port=port,user=user,password=password)
cursor = conn.cursor()
if conn:
print("连接成功")
3.3创建一个引擎执行数据库操作
4. .iloc 和 loc 的区别
loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)
iloc函数:通过行号来取行数据(如取第二行的数据)
5.布尔类型的选取
[(arr.dtypes == 'int')]
ser,password=password)
cursor = conn.cursor()
if conn:
print(“连接成功”)
### 3.3创建一个引擎执行数据库操作
```Python
4. .iloc 和 loc 的区别
loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)
iloc函数:通过行号来取行数据(如取第二行的数据)
5.布尔类型的选取
[(arr.dtypes == 'int')]