2.1 Pandas操作Excel
2.1.1 Series
① index=[列表] 参数,设置自定义索引
Serises 是一维的数据表 (竖着看就是一条直线) ,即 多行一列。在 Python 中 应 以 列表的形式,进行多行单个数据的存储。
import pandas as pd
数据 = pd.Series(['牟泉禹','男',20,'2002-01-07'],index=['a','b','c','d'])
print(数据)
② 字典的数据提供 才是 使用Series最正确的用法。
import pandas as pd
字典 = {'姓名':'muquanyu','性别':'男','年龄':'20'}
数据 = pd.Series(['牟泉禹','男',20,'2002-01-07'],index=['a','b','c','d'])
数据2 = pd.Series(字典)
print(数据)
print(数据2)
因为字典的话,可以把 key 值默认的 作为索引。这样更加的规范和清晰。
③ pandas的数据 其实都可以根据 索引来进行简单的操作。
import pandas as pd
字典 = {'姓名':'muquanyu','性别':'男','年龄':'20'}
数据 = pd.Series(['牟泉禹','男',20,'2002-01-07'],index=['a','b','c','d'])
数据2 = pd.Series(字典)
print(数据)
print(数据2)
print("查询姓名:" + 数据2['姓名'])
数据2['姓名'] = 'abcd'
数据2['新增'] = '123456'
print("查询姓名:" + 数据2['姓名'])
print(数据2)
# 同时读取多条数据
print(数据2[['姓名','年龄']])
至少最基本的增删改查,还是可以做到的。
2.2.1 排序 和 判断数据是否空
sort_values('字段名')
根据提供的那一列,来进行排序。
sort_index()
直接根据 索引列来进行排序。
import pandas as pd
数据 = pd.DataFrame({"字段1":[1,3,2,6,5],"字段2":['a','b','c','','']})
数据.set_index('字段1')
数据.to_excel('1.xlsx',index=False)
表格 = pd.read_excel('1.xlsx')
print(表格.sort_values('字段1'))
isnull() 和 isnotnull() 都是可以判断是否为空数据的方法
import pandas as pd
数据 = pd.DataFrame({"字段1":[1,3,2,6,5],"字段2":['a','b','c','','']})
数据.set_index('字段1')
数据.to_excel('1.xlsx',index=False)
表格 = pd.read_excel('1.xlsx')
print(表格.sort_values('字段1'))
print()
print(表格.isnull())
print()
# print("True" if 表格['字段2'][4]=='' else 'Flase')
print(str(表格['字段2'][4]) == 'nan')
2.3.1 DataFrame
① DataFrame 是多个 Series
构成的,当然也可以 提供 字典
或 二元列表
作为数据来构成 DataFrame 表。
import pandas as pd
s1 = pd.Series(['a','b','c'],name='姓名')
s2 = pd.Series(['男','女','男'],name='性别')
s3 = pd.Series([1,2,3],name='年龄')
df1 = pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
print(df1)
df2 = pd.DataFrame({'姓名':['a','b','c'],'年龄':[1,2,3]})
print(df2)
如果是 二元列表的话,就是以每个元素 当作每一行数据 来构造 DataFrame表。
import pandas as pd
df3 = pd.DataFrame([['a','b','c'],[1,2,3]],columns=['字段1','字段1','字段3'])
print(df3)
② 根据索引和字段名 来定位某个数据或某列数据或某行数据。
数据表[字段名][索引] 获取到该字段那一索引的数据
数据表[字段名] 获取到该字段那一列的数据
import pandas as pd
print(df2['姓名'][1])
print(df2['姓名'])
数据表.loc[索引][字段名] 以索引为主,即行和列顺次的来确定 数据
数据表.loc[索引] 读取该索引那一行的数据
df2.loc[0] = [1,1]
print(df2.loc[0])
print(df2.loc[1]['年龄'])
数据表.iloc[索引][字段索引] 都以索引为主,但 以 行和列为顺序。
数据表.iloc[索引] 可以读取出该索引的那行数据
print(df2.iloc[0])
print(df2.iloc[2][1])
2.3.2 DataFrame 常用方法
数据.values 查看所有行数据 返回一个 二元列表