python数据处理基础
python的数据结构基础与数据处理方法
- 基本数据类型
- 字符串
位于成对的引号之间,单双均可。
- 整数和浮点数
测试两者是否相等 ==,测试的返回值True或False,称作布尔型。
2/3=0 (整数型)
2/3.0=0.66666666(浮点数型)精度不同
控制数据精度:decimal模块
from decimal import Decimal,getcontext
getcontext().prec=1
Decimal(0.1)+Decimal(0.2)
- 关于数学计算的python库
- Decimal:用于定点运算和浮点运算
- Math:使用C语言标准所定义的数学函数
- Numpy:Python科学计算的基础包
- Sympy:用于符号运算的python库
- Mpmath:用于任意精度实数和复数浮点运算的python库
- 数据容器
(1)变量
当记录猫的数量的时候,用变量cat来保存猫的数量,需要计算或查询猫的数量的时候,调用变量cat即可。
(2)列表
将一列元素放到方括号([])中,元素用逗号隔开,即可创建列表。
cat=5
dog=6
pig=7
zoo=[cat,dog,pig]
(3)字典
在python的字典中,你要查找的单词叫做键(key),这些单词的释义叫做值(value)
animal_counts={"cat":2,"dog":5,"horse":1}
要想用键来访问一个值,可以从字典访问键,可以输入以下代码
animal_counts=['dogs']
通过字典将动物们存储清楚
animal_counts={
'cats':['Walter','Ra'],
'dogs':['Joker','Simon'],
'horse':['Mr.Ed','fide']}
存储同样的值还有另一种方法,它用到了更多的变量
cat_names=['Walter','Ra']
dog_names=['Joker','Simon']
horse_names=['Mr.Ed','fide']
animal_counts={
'cats':cat_names,
'dogs':dog_names,
'horse':horse_names}
3.各种数据类型的用途
字符串
- 大小写转换
- 删除字符串末尾的空格
- 分割字符串
整数和小数
- 加减运算
- 简单数学运算
列表
- 在列表中增加或删除元素
- 删除列表的最后一个元素
- 列表重新排列
- 列表排序
字典
- 增加一个键/值对
- 将指定的键设置为新的值
- 利用键查找值
在大多数情况下数据类型能做的事称为方法(Method),想要访问数据类型的方法,或者说让数据类型做一些事情,你可以用点号(.)。
- 字符串方法:字符串能做什么
1.strip方法:可以从头到尾删除字符串中多余的空格
filename='budeget.csv '
filename=filename.strip()
如果你没有对变量重新赋值的话(令filename等于filename.strip()的输出值),你对filename的修改不会被保存。
2.upper方法:文件名全部转换为大写
filename='budeget.csv '
filename=filename.upper()
可以将代码压缩成一行来运行
filename='budeget.csv'.upper()
- 数值方法:数字能做什么
如果计算42的平方,那需要输入42**2。
Python列表支持加法,却不支持减法,如果想了解如何对列表做减法,参考remove方法。
- 列表方法:列表能做什么
1.定义空列表
dog_name=[]
2.append方法:添加元素
dog_name.append('joker')
3.remove方法:删除元素
dog_name.remove('walter')
- 字典方法:字典能做什么
1.创建一个空的字典
animal_counts={}
2.添加键并给定这个键对应的值
animal_counts['horses']=1
animal_counts['cats']=3
animal_counts['pigs']=6
3.返回字典包含的所有键
animal_counts.keys()
4.依据键检索到与其对应的值
animal_counts['horses']
- 有用的工具:type、dir和help
- Type
type可以帮助你确定你的对象属于哪种数据类型
type('20011')
type(20011)
第一行返回的是str,第二行返回的是int
- dir
dir可以让你深入了解每一种python数据类型的内置方法
dir('cat')
利用Python字符串内置的splict方法,我们可以用逗号为分隔符,将字符串切分成更小的字符串。
'cat,dog,panda'.split(',')
python会返回一个列表
['cat', 'dog', 'panda']
- help
help方法会返回对象、方法或模块的帮助文档
help('cat,dog,panda'.split)
- 小结
- 数据类型
名称 |
举例 |
字符串 |
‘Joker’ |
整数 |
2 |
浮点数 |
2.0 |
变量 |
Animai_names |
列表 |
[‘cat’,’dog’,’panda’] |
字典 |
{‘cat’=2,’dog’=1,’panda’=5} |
- 辅助工具
举例 |
用途 |
type(‘joker’) |
返回‘joker’的对象类型 |
dir(‘joker’) |
返回一个列表,给出对象‘joker’可以做的所有事情(方法和属性) |
help(‘joker’.strip) |
返回给定方法(在本例中是strip)的说明文档,以便我们更好了解使用它 |
- 供机器读取的数据
以易于机器理解的方式来存储数据的文件格式,通常叫做机器可读的(machine readable)。常见的机器可读格式有
- 逗号分隔值(comma-separated value,CSV)
- JavaScript对象符号(JavaScript Object Notation,JSON)
- 可拓展标记语言(eXtensible Markup Language,XML)
- CSV数据
CSV文件(简称为CSV)是指将数据列用逗号分隔的文件,文件的拓展名是.csv
访问网页(http://apps.who.int/gho/data/node.main.3?lang=en)
(1)如何导入CSV数据
import csv
csvfile=open('data.csv','r')
reader=csv.reader(csvfile)
for row in reader:
print(row)
函数(function)是一段代码,在被调用时执行相应的任务。它和Python数据类型的方法十分相似。函数有时候会接收一个(或多个)输入。这些输入叫做参数(argument)。函数的功能是基于参数的。函数有时也会返回一个输出,可以被保存或使用。
(2)将代码保存到文件中并在命令行运行
cd C:\Users\朱纪翔\Desktop\练习,cd可以使用变更目录或文件夹命令。
在命令行中输入python main.py
将列表行改成字典行,需要将reader=csv.reader(csvfile)修改成reader=csv.Dictreader(csvfile)。
import csv
csvfile=open('data.csv','r')
reader=csv.DictReader(csvfile)
for row in reader:
print(row)
现在我们已经成功地将CSV数据导入到python中,我们能够从文件中获取数据,并将其转换成python可用的格式(字典),for循环能够让我们直观地查看数据。我们可以利用CSV库两种不同的reader来查看数据,一种是列表形式,一种是字典形式。
- JSON数据
- 如何导入JSON数据
import json
json_data=open('data-text.json').read()
data=json.loads(json_data)
for item in data:
print(item)
在CSV的例子中,我们以只读方式打开文件;但在JSON的例子中,我们读取文件的内容,并将其保存在变量json_data里面。在CSV的例子中,open函数返回的是一个文件对象;但是在JSON例子中,我们首先打开文件,然后读取文件,所以得到的是一个str(字符串)。两者的不同是基于下列事实:Python的json库和csv库处理输入数据的方式不同。
- XML数据
from xml.etree import ElementTree as ET
tree = ET.parse('../../data/chp3/data-text.xml')
root = tree.getroot()
print(root)
data = root.find('Data')
all_data = []
for observation in data:
record = {}
for item in observation:
lookup_key = item.attrib.keys()[0]
if lookup_key == 'Numeric':
rec_key = 'NUMERIC'
rec_value = item.attrib['Numeric']
else:
rec_key = item.attrib[lookup_key]
rec_value = item.attrib['Code']
record[rec_key] = rec_value
all_data.append(record)
print(all_data)
XML格式,使用了一种叫做标签的东西。
XML是一种标记语言,它具有包含格式化数据的文档结构。XML文档本质上知识格式特殊的数据文件。标签(或节点)以层次化和结构化的方式保存数据。
在XML文件中有两个位置可以保存数据值:一个位置是在两个标签之间,比如在<Display>46</Display>中,<Display>标签值是46;另一个位置是标签的属性,比如在<Dim Category=”COUNTRY” Code=”Som”/>中,Category的属性值是”COUNTRY” ,Code的属性值是”Som”。XML用标签和属性来保存数据,类似于JSON中的键。
每一“行”数据都包含在一个Observation标签中,在每一个Observation节点内,这些数据行又分别包含在Dim,Value和Display节点中。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)