Python数据读取方法详解:快速掌握文件、数据库、API数据读取技巧,轻松玩转数据分析与处理!
想用Python来搞数据分析?那第一步,也是最重要的一步,就是得会读取数据啊!不然,巧妇难为无米之炊,再厉害的算法,没有数据支撑,也只能干瞪眼。
那Python怎么读取数据呢?方法可多了,简直眼花缭乱。别怕,我来给你捋一捋。
最基本的操作,肯定是从文件里读取数据。文本文件,像是.txt、.csv这些,是最常见的。
我跟你说,刚开始学的时候,我就是被各种文件格式搞懵了。什么encoding啦,delimiter啦,一不小心就乱码,或者数据错位。现在想想,真是踩了不少坑。
读取文本文件,open()
函数是基石。比如,想读取一个名为”data.txt”的文件,就可以这么写:
python
with open("data.txt", "r") as f:
for line in f:
print(line.strip()) # .strip()去掉行尾的换行符
“r”表示以只读模式打开文件。with open()
这种写法,好处是自动帮你关闭文件,不用担心忘记释放资源。文件太大?不用一次性全读进内存,一行一行读,省内存!
但是,open()
读出来的东西,都是字符串。如果你需要处理数值类型的数据,还得进行转换。比如,用int()
或者float()
把字符串转成整数或浮点数。
CSV文件,其实也就是逗号分隔的文本文件。不过,Python有专门的库来处理它,那就是csv
库。
“`python
import csv
with open(“data.csv”, “r”) as f:
reader = csv.reader(f)
for row in reader:
print(row)
“`
csv.reader()
会把每一行数据分割成一个列表,每个元素就是一列的数据。方便吧?
如果CSV文件有表头,也就是第一行是列名,你可以用csv.DictReader()
来读取数据,它会把每一行数据转换成一个字典,键就是列名,值就是对应的数据。这样,你就可以通过列名来访问数据了,更直观!
除了csv
库,pandas
库也是读取CSV文件的利器。pandas
是数据分析的神器,它的read_csv()
函数,简直不要太好用!
“`python
import pandas as pd
df = pd.read_csv(“data.csv”)
print(df)
“`
一行代码,就把CSV文件读取成了一个DataFrame对象,DataFrame是pandas
的核心数据结构,类似一个表格。你可以对DataFrame进行各种操作,比如筛选、排序、统计等等。
而且,pandas
的read_csv()
函数有很多参数可以设置,比如指定分隔符、跳过行数、指定列名等等。可以灵活应对各种CSV文件。
再说说Excel文件。Excel文件,也就是.xls或者.xlsx文件,也是数据分析中常用的数据源。Python可以用xlrd
和openpyxl
这两个库来读取Excel文件。
xlrd
库只能读取旧版本的Excel文件(.xls),而openpyxl
库可以读取新版本的Excel文件(.xlsx)。不过,pandas
也提供了read_excel()
函数,可以方便地读取Excel文件,底层也是用的这两个库。
“`python
import pandas as pd
df = pd.read_excel(“data.xlsx”, sheet_name=”Sheet1″) # sheet_name指定工作表
print(df)
“`
sheet_name
参数指定要读取的工作表,如果不指定,默认读取第一个工作表。
除了文件,数据还可以存在数据库里。Python可以连接各种数据库,比如MySQL、PostgreSQL、MongoDB等等。
读取数据库里的数据,首先要安装相应的数据库驱动。比如,要连接MySQL数据库,你需要安装pymysql
库。
“`python
import pymysql
conn = pymysql.connect(host=”localhost”, user=”root”, password=”password”, database=”database_name”)
cursor = conn.cursor()
sql = “SELECT * FROM table_name”
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
print(row)
cursor.close()
conn.close()
“`
这段代码,首先连接到MySQL数据库,然后创建一个游标对象,通过游标对象执行SQL查询语句,最后获取查询结果。
fetchall()
方法会返回所有查询结果,每一行数据是一个元组。
如果只想读取部分数据,可以用SQL语句的WHERE
子句来筛选数据。比如,SELECT * FROM table_name WHERE column_name = 'value'
。
还有一种读取数据的方式,是从API接口读取数据。API,也就是应用程序编程接口,是一种允许不同应用程序之间进行通信的协议。
很多网站都提供了API接口,你可以通过API接口读取网站上的数据。比如,天气预报API、股票行情API等等。
Python可以用requests
库来发送HTTP请求,读取API接口返回的数据。
“`python
import requests
url = “https://api.example.com/data”
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(data)
else:
print(“请求失败”)
“`
这段代码,首先发送一个GET请求到指定的URL,然后判断请求是否成功。如果请求成功,response.json()
会把返回的JSON数据转换成Python字典。
API接口返回的数据格式有很多种,常见的有JSON和XML。如果返回的是XML数据,可以用xml.etree.ElementTree
库来解析XML数据。
读取数据的方式真是五花八门啊,不过,掌握了这些基本的方法,就可以应对大部分的数据读取需求了。
记住,多练习,多实践,才能真正掌握Python读取数据的技巧。数据分析之路,从读取数据开始!