学了数据分析之后再看ML小项目确实清晰了一些。
数据加载:读取数据并使数据可访问。
解析:描述加载文本数据并将其解释为表格和不同的数据类型。
6.1读写文本格式的数据
pandas提供了一些将表格数据读取为DataFrame对象的函数。
read_csv,使用最多,从文件、URL、文件型对象中加载带分隔符的数据。
read_excel
并不是所有文件都有表头,有的需要自己添加表头:
pd.read_csv('xxxx.csv',head=None)
names=['a','b','c','d','message']
pd.read_csv('xxxx.csv',names=names)
#如果想要用message列作为索引,可以调用index_col
pd.read_csv('xxxx.csv',names=names,index_col='message')
也可以在index_col里引入多列,做层次化索引。(第八章)
在某些情况,有些表格使用的不是固定的分隔符,需传入正则表达式
result = pd.read_csv('xxxx.csv',sep='\s+')
可以用skiprows=[0,2,3]跳过某行
pandas.read_csv有多种默认的NA标记值,可以用选项keep_default_na使其失效。
1.当 keep_default_na
取值为 True
(这是默认值)时,Pandas 会把默认的缺失值标识(像 NaN
、nan
、None
等)识别为缺失值。
2.当 keep_default_na
取值为 False
时,Pandas 不会把默认的缺失值标识当作缺失值处理,而是将其视作普通的值。此时,你可以借助 na_values
参数来指定你想要识别的缺失值。
输出:
当keep_default_na
取值为 False时:
输出:
6.1.1 逐块读取文本文件
处理大文件时,想读取一部分
先设置pandas,使显示更加紧凑
pd.options.display.max_rows = 10
像读取几行,可以用nrows进行指定
df = pd.read_csv("examples.csv",nrows=5)
要逐块读取文件,可以用chunksize作为行数。
# 假设这是一个非常大的 CSV 文件路径
file_path = 'large_file.csv'
# 设置每块的行数
chunksize = 1000
# 逐块读取数据
for chunk in pd.read_csv(file_path, chunksize=chunksize):
# 在这里对每一块数据进行处理,例如打印前几行
print(chunk.head())
6.1.2 将数据写入文本格式
1.利用to_csv方法,可以将数据导出到逗号分隔的文件中:
还可以使用其他分隔符,
6.1.3 使用其他分隔符形式
6.1.4 JSON
6.1.5 XML和HTML:网络抓取
后三个看了一遍,感觉暂时用不到。