AIStudio - 数据准备和特征工程
1 感知数据
1.1文件数据
1.1.1 CSV
打开csv文件1
文件路径—open(文件路径)—csv.reader(open(文件路径))
import csv
#文件路径
csv_file = "/home/aistudio/data/data20465/cities.csv"
#打开文件
f = open(csv_file)
data = csv.reader(f)
#行一行输出
for line in data:
print(line)
打开csv文件2
文件路径—pd.read_csv(文件路径)
import pandas as pd
csv_file = "/home/aistudio/data/data20465/cities.csv"
df = pd.read_csv(csv_file) # ②
#pd.read_csv? #得到函数参数和使用详情
#pd.read_csv(csv_file, index_col=0)
df
案例
diabetes = pd.read_csv("/home/aistudio/data/data20465/diabetes.csv")
diabetes.shape
diabetes.head() #默认()是5
diabetes.info()
diabetes.dtypes
练习+保存csv文件
import pandas as pd
df = pd.read_csv("/home/aistudio/data/data20465/Bicycle_Counts.csv")
df.head(10)
f.shape[0]
df_new = df.head(10) #取前10个数据
df_new.to_csv("work/files/ten_bicycle.csv") # 将前10个数据保存路径为本实验平台路径
1.1.2 Excel
aistudio安装第三方模块,以及到上述目录,将所安装包引入到当前搜索列表中
# 在实验平台安装第三方模块,可以仿照下面方法
!mkdir /home/aistudio/external-libraries # 必须创建此目录,一个项目只能创建一个
# 安装第三方模块到上述目录
!pip install xlrd -t /home/aistudio/external-libraries
!pip install openpyxl -t /home/aistudio/external-libraries
# 安装之后,执行此代码,将所安装包引入到当前搜索列表中
import sys
sys.path.append('/home/aistudio/external-libraries')
读取excel文件
pd.read_excel(文件路径)
#pd.read_excel? #read_excel所有函数参数
jiangsu = pd.read_excel("/home/aistudio/data/data20465/jiangsu.xls")
#jiangsu
保存excel文件
to_excel(文件路径)
jiangsu.to_excel('work/files/jiangsu.xlsx')
案例
cpi = pd.read_excel("/home/aistudio/data/data20465/cpi.xls")
cpi #查看源数据详情
为具体查看函数操作,每一次函数操作后,都输出当前数据及其大小
cpi.columns = cpi.iloc[1] #取新的数据,行 为源数据1行开始
print(cpi,cpi.shape)
cpi = cpi[2:] # 新的数据,列 为源数据2列开始
print(cpi,cpi.shape)
cpi.drop([11, 12], axis=0, inplace=True) # 丢弃2行 数据
print(cpi,cpi.shape)
cpi['cpi_index'] = ['总体消费', '食品烟酒', '衣着', '居住', '生活服务', '交通通信', '教育娱乐', '医保', '其他'] # 新添加列
print(cpi,cpi.shape)
cpi.drop(['指标'], axis=1, inplace=True) # 丢弃指标列
print(cpi,cpi.shape)
cpi.reset_index(drop=True, inplace=True) # ⑩
print(cpi,cpi.shape)
cpi.columns.rename('', inplace=True) # ⑪
print(cpi,cpi.shape)
#输出
cpi.info()
for column in cpi.columns[:-1]:
cpi[column] = pd.to_numeric(cpi[column])
print(cpi.dtypes)
源代码输出图像中横坐标的中文月份无法正确显示改进代码如下,问题解决
中文横坐标无法显示问题解决的参考文章:解决AI Studio中matplotlib汉字显示问题-aistudio-qiwsir
其他参考资料: matplotlib官网
>还是没解决,先留一个坑在这里,后面补~
#画图
%matplotlib inline
import matplotlib.pyplot as plt # ⑬
plt.bar(cpi.iloc[5, :-1].index, cpi.iloc[5, :-1].values) # ⑭
plt.grid() # ⑮
读数据,画柱状图
import pandas as pd
plt.figure(figsize=(15,15)) #更改大小以便图形横坐标基本显示出来
jiangsu = pd.read_excel("/home/aistudio/data/data20465/jiangsu.xls")
plt.bar(jiangsu['name'], jiangsu['area'])
用数据画箱式图
可以用来反映一组或多组连续型定量数据分布的中心位置和散布范围,因形状如箱子而得名。1977年,美国著名数学家John W. Tukey首先在他的著作《Exploratory Data Analysis》中介绍了箱形图
js = pd.read_excel("/home/aistudio/data/data20465/jiangsu.xls",
index_col=0)
fig, ax = plt.subplots()
ax.boxplot(js['population'], showmeans=True)
ax.grid(True)
1.1.3 图形文件
打开图形文件
Image.open(图形文件路径)
from PIL import Image # ○16
color_image = Image.open("work/images/laoqi.png") # ○17
color_image
一些针对图形文件的操作
变灰+查看变灰后的图片存储数据大小格式
#变灰
gray_image = Image.open("work/images/laoqi.png").convert("L")
gray_image
#输出图片大小
import numpy as np
color_array1 = np.array(color_image) #没变灰
color_array2 = np.array(gray_image) #变灰
print(color_array1.shape,'\n',color_array2.shape) #变灰的第三维消失
cv2库 - opencv-python-CV
cv2.imread(文件路径)
import cv2 # ○18
img = cv2.imread('work/images/laoqi.png', 0) # 读出对应路径图片对应的数值
print(img)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])
from PIL import Image
Image.fromarray(img)
裁剪图片
img = cv2.imread('work/images/laoqi.png', 0)
part_img = img[50:260, 100:280]
Image.fromarray(part_img)
对比色图片
reverse_img = 255 - img # ○19
Image.fromarray(reverse_img)
图片拼接
import numpy as np
from PIL import Image
import cv2
img1 = cv2.imread('work/images/laoqi.png', -1)
img2 = cv2.imread("work/images/book.png", -1)
part1 = img1[50:260, 100:280]
part2 = img2[300:, 100:280]
new_img = np.hstack((part1, part2))
Image.fromarray(new_img)