导入读取文件
大赛使用的数据文件大多为xlsx格式,即Excel表格文件格式。在Python中有许多库可直接操作Excel文件,例如 pandas
库。
- 首先需要引入pandas、numpy库并分别命名pd、np方便后续代码引用,
import pandas as pd # 用于操作Excel文件
import numpy as np # 用于将读取后的数据转换为可操作的矩阵
- 读入文件,可选择将其写入缓存以便下次更快的读取
if os.path.exists('./cache.pkl'): # 是否存在缓存
df = pd.read_pickle('./cache.pkl') # 读取缓存
else:
# 否则读取文件
df = pd.read_excel(r'C:\Users\Administrator\Desktop\data.xlsx')
# 再写入缓存
df.to_pickle('./cache.pkl')
若无需写入缓存直接使用以下语句直接读取即可
df = pd.read_excel(r'C:\Users\Administrator\Desktop\data.xlsx')
数据处理
数据大多情况会受收集器外部环境所干扰,因此有时需要对异常数据进行处理。
- 筛选、替换值低于或高于某阈值的数据
df[df < 0] = np.nan # 此处将筛选出数据值小于0的值,并填充为空
df[df > 10] = 0 # 反之,需要筛选值大于10的可将其替换为0
- 删除空行
# 该段代码代表删除所有区域内含有数据为空的所有行
df.dropna(axis=0, how="any", inplace=True)
其中:
参数 | 说明 |
---|---|
axis 参数 | 确定是否删除包含缺失值的行或列,0为行,1为列 |
how 参数 | 当我们至少有一个NA时,确定是否从DataFrame中删除行或列,'all’时表示删除全是缺失值的行(列),'any’时表示删除只要含有缺失值的行(列) |
thresh=n 表示 | 保留至少含有n个非na数值的行 |
subset=[] | 定义要在哪些列中查找缺失值 |
inplace | 表示直接在原DataFrame修改 |
- 排序
df.sort_values(by=['OP'], ascending=True, inplace=True,
na_position='first')
参数 | 说明 |
---|---|
by | 指定列名(axis=0或’index’)或索引值(axis=1或’columns’) |
axis | 若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0 |
ascending | 是否按指定列的数组升序排列,默认为True,即升序排列 |
inplace | 是否用排序后的数据集替换原来的数据,默认为False,即不替换 |
na_position | {‘first’,‘last’},设定缺失值的显示位置 |
数据导出
df.to_excel('data.xlsx') # 导出至xlsx
df.to_csv('data.csv') # 导出至csv
发表回复