import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
读取文件
- 将表格型数据读取为DF对象的函数
- read_csv:默认分隔符是逗号
- read_table:默认分隔符是制表符('\t')
- read_excel:读取Excel文件
- read_sql:读取SQL数据文件
image.png
!type example1.csv
a,b,c,d,message
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
df = pd.read_csv("example1.csv")
df
image.png
pd.read_csv("example1.csv", sep=",")
image.png
导入数据时,自定义列属性
- header:默认的
- names:指定列属性,列表形式
print(pd.read_csv("example2.csv", header=None))
pd.read_csv("example2.csv", names=["a", "b", "c" ,"d"])
image.png
names=["a", "b", "c" ,"d", "message"]
pd.read_csv("example2.csv", names=names, index_col="message")
image.png
非固定分隔符去分隔字段的表格处理:
空白符或者其他模式来分隔字段,通过seq
指定分隔字段
列名比数据行少,read_table
将第一列作为DF
的索引
image.png
pd.read_csv("example2.csv",skiprows=[0, 2, 4])
打开文件时:跳过索引为0,2,4的行数据
缺失值处理
- 数据不存在或者为空字符串
- 数据使用某个标记值表示
- pandas通过标记值识别,NA或NULL
result = pd.read_csv("example1.csv", sep=",")
result
a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 foo
pd.isnull(result)
image.png
读取文件参数说明
image.png
按块读取文件
读取小文件
pd.options.display.max_rows = 15
result = pd.read_csv(r"D:\Python\datalearning\PandasLearning\NBA_Data.csv", encoding="gb18030")
result.head()
image.png
result = pd.read_csv(r"D:\Python\datalearning\PandasLearning\NBA_Data.csv",
nrows=6, encoding="gb18030")
result
image.png
按块读取文件chunksize
- chunksize:指定大小
- get_chunk:任意大小
chunker = pd.read_csv(r"D:\Python\datalearning\PandasLearning\NBA_Data.csv", encoding="gb18030", chunksize=1000)
tot = pd.Series([])
for piece in chunker:
tot = tot.add(piece['得分'].value_counts(), fill_value=0)
tot = tot.sort_values(ascending=False)
tot[:10]
image.png