1.3 数据输入和输出
1.3.1 csv
🚩我们想要存储数据,首先要创建数据:
import numpy as np import pandas as pd # 薪资情况: df = pd.DataFrame(data = np.random.randint(0, 50, size = (50, 5)), columns = ['IT', '化工', '生物', '教师', '士兵']) display(df)
import numpy as np import pandas as pd # 薪资情况: df = pd.DataFrame(data = np.random.randint(0, 50, size = (50, 5)), columns = ['IT', '化工', '生物', '教师', '士兵']) display(df) # 保存到当前路径下,文件名是:salary.csv df.to_csv('./salary.csv', sep = ';', # 文本分隔符,默认是逗号 header = True, # 是否保存列索引 index = True) # 是否保存行索引 # 保存行索引,文件被加载时,默认行索引会作为一列
点击该文件就可以查看保存的数据信息:
能保存数据自然就有加载数据的操作:
pd.read_csv('./salary.csv', sep = ';', # 默认是逗号 header = [0], # 指定列索引 index_col = 0) # 指定行索引
1.3.2 Excel
🚩如果要保存为 Excel 文件,我们需要装两个库:
pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple
按下 Windows + R,输入 cmd,然后输入上述两行,如果你曾跟着NumPy从入门到进阶进行学习,这一步可以省略
import numpy as np import pandas as pd df1 = pd.DataFrame(data = np.random.randint(0, 50, size = [50,5]), # 薪资情况 columns = ['IT', '化工', '生物', '教师', '士兵']) # 保存到当前路径下,文件命名是:salary.xlsx df1.to_excel('./salary.xlsx', sheet_name = 'salary',# Excel中工作表的名字 header = True, # 是否保存列索引 index = False) # 是否保存行索引
这样我们就保存了 df1 的数据,并把文件存到了当前目录下:
注意这个文件我们在 jupyter 上是无法打开的,但是我们可以在文件管理中找到并打开:
接下来我们来读取这个文件:
pd.read_excel('./salary.xlsx', sheet_name = 0, # 读取哪一个Excel中工作表,默认第一个 header = 0) # 使用第一行数据作为列索引
我们还可以替换列索引,比如我们把列索引替换为 ABCDE
pd.read_excel('./salary.xlsx', sheet_name = 0, # 读取哪一个Excel中工作表,默认第一个 header = 0, # 使用第一行数据作为列索引 names = list('ABCDE'))# 替换列索引
我们还可以指定行索引:
pd.read_excel('./salary.xlsx', sheet_name = 0, # 读取哪一个Excel中工作表,默认第一个 header = 0, # 使用第一行数据作为列索引 names = list('ABCDE'), index_col = 1) # 替换列索引,index_col = 1 代表B作为行索引 # 感兴趣的读者可以自己运行一下:0 和 3 # index_col = 0 代表A作为行索引 # index_col = 3 代表D作为行索引
我们打开我们的 Excel 表格:
可以看到只有一个工作表,我们如果现在想再创建一个工作表用来存储其他数据,可以按下述操作:
# 创建一组新的数据: # 计算机科目的考试成绩 df2 = pd.DataFrame(data = np.random.randint(0, 50, size = [150, 3]), columns=['Python', 'Tensorflow', 'Keras']) df2.to_excel('./salary.xlsx', sheet_name = 'test',# Excel中工作表的名字 header = True,# 是否保存列索引 index = False) # 是否保存行索引,保存行索引
我们再来查看一下我们的文件:
发现并没有实现我们预期的结果,下面来正式介绍一下如何操作:
# 一个Excel文件中保存多个工作表 with pd.ExcelWriter('./data.xlsx') as writer: df1.to_excel(writer,sheet_name = 'salary', index = False) df2.to_excel(writer,sheet_name = 'score', index = False)
这样就实现了我们的存入操作,接下来还是读取的操作:
读取 salary:
pd.read_excel('./data.xlsx', sheet_name='salary') # 读取Excel中指定名字的工作表
读取 score:
pd.read_excel('./data.xlsx', sheet_name='score') # 读取Excel中指定名字的工作表