jupyter Note环境配置,安装及使用以及python数据的读取操作
统计软件与数据分析—Lesson2
主要包含jupyter Note环境配置,安装及使用以及python数据的读取操作等
1.Jupyter Note环境配置,安装及使用
1.1 Jupyter Note 基本操作
1.启动
win+R键—>输入‘cmd’—>点击‘确定’—>jupyter notebook
shift+右键
2.上传、下载
upload
复制粘贴
File–>Download as—> …
后缀ipynb(ipython+notebook)
3.创建、命名
new—>python3
4.cell 基本操作
插入:Insert Esc+A Esc+B
删除:D+D
快捷键:Esc+h
cell类型:code、markdown
1.2 Notebook中的Magic开关
https://blog.csdn.net/s1164548515/article/details/89458668
- 为实现一些快捷操作,提升效率。Notebook中提供了Magic开关,能极大得优化我们使用Notebook的体验。
- Magic 开关分为两大类:%line magic & %%cell magic
1.2.1 Magic开关总览
%lsmagic
%quickref
1.2.2 Line Magic 全局
%config InteractiveShell.ast_node_interactivity = ‘all’
%whos
%matplotlib inline
1.2.3 Cell Magic 当前cell
%%system
%%time
%%timeit
dir
1.3 Notebook 扩展
1.3.1 Jupyter Lab
cmd 输入jupyter lab
1.3.2 Jupyter notebook功能扩展Nbextensions
cmd中一次运行以下三行命令:
pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple
jupyter contrib nbextension install --user
pip install yapf -i https://pypi.tuna.tsinghua.edu.cn/simple
1.3.3 添加对R语言的支持
https://blog.csdn.net/s1164548515/article/details/100747987
1.3.4 添加对stata语言的支持
https://blog.csdn.net/s1164548515/article/details/10834249
2. Python简介,解释执行,运行方式
2.1 Python解释与运行
Python解释器interpreter
运行在系统线程上的C语言函数+超大循环。每个字节码指令均对应一个完全由C实现的逻辑。
Python解释器在执行过程
先对文件中的Python源代码进行编译,编译的主要结果是产生的一组Python的字节码(byte code),pyc文件是字节码在磁盘上的表现形式,是进行import module时对py文件进行编译的文件结果(如果之前编译过,且源文件又没有变化,则直接运行该pyc文件),而编译结果就是Python中的PyCodeObject对象,然后PyCodeObject对象交给Python虚拟机(Virtual Machine),由虚拟机按照顺序一条一条地执行字节码,从而完成对Python程序的执行动作。
python: .py -->(编译器)–>.pyc–>解释器(虚拟机)–>返回结果
在编译好的Python环境中,编译器和解释器都被封装进了pythonxx.dll中,由python.exe调用
2.2 延伸阅读:Python解释器
默认用到的都是用C语言实现的对Python的解释器CPython。也有用Python实现的python解释器PyPy,.Net实现的IronPython
- CPython解释器中的两个栈:
- 执行栈Evaluation Stack:存储指令操作数
- 块栈Block Stack:存储循环,异常等信息
字码基于栈式虚拟机,没有寄存器概念,转译简单,没有另类优化。不能被CPU执行,每条字节码对应C实现的机器指令。
Python 实现了栈式虚拟机 (Stack-Based VM) 架构,通过与机器⽆关的字节码来实现跨平台执⾏能⼒。
这种字节码指令集没有寄存器,完全以栈 (抽象层⾯) 进⾏指令运算。
2.3 Python的两种运行方式
2.3.1 解释式运行:如PyCharme,或命令行下python pyname.py
- 下方新建py文件
%%writefile lesson2_1.py
import sys
print('the file run name ',sys.argv[0],'The time that file should run:',sys.argv[1])
for i in range(int(sys.argv[1])):
print(i,'times run')
!python lesson2_1.py 2
2.3.2 交互式运行
- 命令行Python,bpython,ipython, notebook
2.4 Python内置及三方库的管理及使用
2.4.1 模块Module与包Package
- 模块:一个模块就是一个Python源码文件(也可能是对c语言文件编译生成的pyd文件)
- 包:组织一堆相关功能的模块,并包含
__init__.py
文件的目录。
2.4.2 模块的导入
一个模块本质上是一个py文件
%%writefile lesson2.py
a=123
_b='str'#
def lesson2_fun():
return globals()
import lesson2
lesson2.__name__
__name__
#修改源码后不生效?试下reload
import lesson2
from imp import reload
reload(lesson2)
lesson2.a
2.4.3 包的安装
Python包是一组功能相关的模块,通常由多个.py文件组成,它们可以被其他程序导入和使用。Python提供了一个标准的包管理系统pip,可以方便地安装和管理第三方包。
1.单个包安装
- 使用pip安装包:
!pip install package_name
但通常建议在cmd窗口安装更稳定:win+R键–>输入cmd–>点击‘确定’—>pip install package_name
pip install tushare #注意jupyter notebook中运行前面需要加!
- 下载源代码并安装:
```python
!git clone https://github.com/package_name.git
!cd package_name && python setup.py install
- 批量安装Package
创建requirements.txt文件,将所需安装的包的名字都分行放在里,再运行:
pip install -r ./requirements.txt
2.4.4 包的导入
1.导入包
- 直接导入整个包:import package_name
示例:
import numpy
- 导入包中的指定模块:from package_name import module_name
示例:
from numpy import array
- 导入包中的所有模块:from package_name import *
from numpy import *
- 给包起别名:import package_name as alias_name
import numpy as np
总之,Python包是非常重要的,它们扩展了Python的功能,提供了丰富的库和工具来帮助我们编写更好的程序。
2.4.5 包的其它操作:
- 使用浏览器查看内置包:
cmd命令行下运行,python -m pydoc -p 1234
- 三方包的管理:
!pip list #列出所有的package
2.5 如何更好得获得帮助
-
1.官网文档 https://docs.python.org/3/
-
2.dir与tab的使用
-
3.help, ?,shift-tab的使用
str1='http://tsxy.zuel.edu.cn/'
# str1.rjust?
# help(exec)
str1.find('t')#查找字符串中的指定字符所在的位置
3. python数据的存取
3.1 数据的保存
在Python中,可以使用不同的包来将不同类型的数据保存到不同类型的文件中。下面是一些示例:
3.1.1 保存list
- 保存List到txt文件
data_list = ['apple', 'banana', 'orange']
with open('data_list.txt', 'w') as f:
for item in data_list:
f.write("%s\n" % item)
- 保存List到csv文件
import csv
data_list = [['apple', 1], ['banana', 2], ['orange', 3]]
with open('data_list.csv', mode='w', newline='') as f:
writer = csv.writer(f)
writer.writerows(data_list)
- 保存List到Excel文件
import pandas as pd
data = ['apple', 'banana', 'orange']
df = pd.DataFrame(data_list, columns=['fruits'])
df.to_excel('data_list.xlsx', index=False)
3.1.2 保存Dict
- 保存Dict到txt文件
data_dict = {'a': 1, 'b': 2, 'c': 3}
with open('data_dict.txt', 'w') as f:
for key, value in data_dict.items():
f.write(f'{key}:{value}\n')
- 保存Dict到csv文件
import csv
data_dict = {'apple': 1, 'banana': 2, 'orange': 3}
with open('data_dict.csv', mode='w', newline='') as file:
writer = csv.writer(file)
for key, value in data_dict.items():
writer.writerow([key, value])
- 保存Dict到Excel文件
import pandas as pd
data_dict = {'name': ['apple', 'banana', 'orange'], 'price': [1, 2, 3]}
df = pd.DataFrame(data)
df.to_excel('data_dict.xlsx', index=False)
3.1.3 保存Set
- 保存Set到txt文件
data_set = {'apple', 'banana', 'orange'}
with open('data_set.txt', 'w') as f:
for item in data_set :
f.write("%s\n" % item)
- 保存Set到csv文件
data_set = {1, 2, 3, 4, 5}
import csv
with open('data_set.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['value'])
for value in data_set :
writer.writerow([value])
- 保存Set到excel文件
import pandas as pd
data_set = {1, 2, 3, 4, 5}
df = pd.DataFrame(list(data_set), columns=['value'])
df.to_excel('data_set.xlsx', index=False)
3.1.4 保存Dataframe
- 保存Dataframe到txt文件
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
data_df = pd.DataFrame(data)
data_df.to_csv('data_df.txt', index=False, sep='\t')
- 保存Dataframe到csv文件
import pandas as pd
data = {'name': ['apple', 'banana', 'orange'], 'price': [1, 2, 3]}
data_df = pd.DataFrame(data)
data_df.to_csv('data_df.csv', index=False)
- 保存Dataframe到Excel文件
import pandas as pd
data = {'name': ['apple', 'banana', 'orange'], 'price': [1, 2, 3]}
data_df = pd.DataFrame(data)
writer = pd.ExcelWriter('data_df.xlsx')
data_df.to_excel(writer, index=False, sheet_name='Sheet1')
writer.save()
3.1.5 保存Matrix
- 保存Matrix到txt文件
import numpy as np
data_matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.savetxt('data_matrix.txt', data_matrix)
- 保存Matrix到csv文件
import numpy as np
data_matrix = np.random.rand(3, 3)
np.savetxt('data_matrix.csv', data_matrix, delimiter=',')
- 保存Matrix到Excel文件
import pandas as pd
import numpy as np
data_matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df = pd.DataFrame(data_matrix)
df.to_excel('data_matrix.xlsx', index=False)
总之,Python提供了很多包和方法来处理不同类型的数据,并将它们保存到不同类型的文件中,这些示例只是其中一部分,读者可以根据自己的需要选择适合自己的方法。
3.2 数据的读取
3.2.1 读取txt文件中的数据
with open('data_list.txt', 'r') as f:
data = f.read()
print(data)
3.2.2 读取excel文件中的数据
import pandas as pd
data = pd.read_excel('data_dict.xlsx')
print(data)
3.2.3 读取csv文件中的数据
import pandas as pd
data = pd.read_csv('data_df.csv')
print(data)
3.2.4 读取stata文件中的数据
import pandas as pd
data = pd.read_stata('example.dta')
print(data)
3.2.5 读取R文件中的数据
import pandas as pd
data = pd.read_r('example.Rdata')
print(data)
3.2.6 读取SPSS文件中的数据
import pandas as pd
data = pd.read_spss('example.sav')
print(data)
3.2.7 读取Eviews文件中的数据
import pandas as pd
data = pd.read_table('example.prg', delim_whitespace=True)
print(data)
3.2.8 读取JSON文件中的数据
import json
with open('example.json', 'r') as f:
data = json.load(f)
print(data)
3.2.9 读取MYSQL文件中的数据
import mysql.connector
conn = mysql.connector.connect(user='username', password='password', host='host_address', database='database_name')
c = conn.cursor()
c.execute('SELECT * FROM table_name')
data = c.fetchall()
print(data)
3.2.10 读取SQLite文件中的数据
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('SELECT * FROM table_name')
data = c.fetchall()
print(data)