统计软件与数据分析—Lesson2

本文详细介绍了Jupyter Note的环境配置、基本操作和Magic开关,以及Python数据的保存与读取方法,包括txt、csv、Excel、stata、R、SPSS、Eviews、JSON、MySQL和SQLite等格式。
摘要由CSDN通过智能技术生成

统计软件与数据分析—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解释器中的两个栈:
    1. 执行栈Evaluation Stack:存储指令操作数
    2. 块栈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)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值