数据分析入门
标准库:I/O编程
#用with函数 打开数据文本文件 r代表只读 w代表写入
with open("E:\\test.txt",'r') as f:
#读取全部数据行
data = f.read()
#数据每次只读取一行
data = f.readline()
#写入数据 字符串"Hello World"
data = f.write("Hello World")
f.close()
pandas数据读取
#数据读取
#导入pandas包
import pandas as pd
#读取pokemon.csv文件 数据文件最好保存为通用的csv格式
df = pd.read_csv("E:\\pokemon.csv")
如果导入的CSV文件没有列名,应该如何增加命名列名columns呢?
#?pd.read_csv()查看帮助文档
?pd.read_csv()
#如果导入的CSV文件缺少列名header() 可参数命名列名 pd.readcsv(file,params......)
df1 = pd.read_csv("E:\\NBA.csv",header = None, names=["seq1","player","height","weight","college","born_city","born_state"])pd.read_csv("E:\\NBATest.csv",header=None, names=["seq","player","height","weight","college","born","city","state"])
查看数据集常用到两个函数:head()、tail()
head()默认查看数据集的最前五行,如果要查看多行,例如10行,则可输入head(10)即显示10行数据;
tail()也是默认查看数据集的最后五行,如果要查看多行,例如6行,则可输入tail(6)即显示6行数据。
数据集增加一列应如何操作?
df1["new_column"]=0
即在数据集最后一列增加列名为“new_column”且值均为0的Series
数据集删除一列应如何操作?
del df1["new_column"]
即删除了列名为“new_column”的Series
两列数据进行算术运算应如何操作?
df1["hw"]=df1["height"]+df1["weight"]
即在数据集最尾增加一列名为“hw”的Series,数值为Series“height”与“weight”数值之和,同理可进行加减乘除的运算
df1["hw"]=df1["hw"]/10
df属性
#查看数据集所有列名 dtype=object非数值型
df.columns
#查看数据集索引
df.index
#查看数据行数列数
df.shape
#查看每一列数据类型
df.dtypes
如何对列名重命名?
df.columns=["seq","player","height","weight","born","city","state","hw"]
数据集有空值NaN,如何全部替换为其他数字?
#将所有NaN的空格填充为-1,并另存为新的数据集,不影响旧数据集
df.fillna(-1)
#另存到df_New中
df_New = df.fillna(-1)
Series是一维数组
DataFrame是二维数组
Series有哪些属性?
#查看索引
s.index
#查看值
s.values
那么,Series有哪些函数?
s1 = df["college"]
#选取不重复的独一无二唯一的学校
s1.unique()
#查看长度
len(s1.unique())
#查看每个学校出现多少次 两种表示方法
s1.value_counts()
df["college"].value_counts()
1.字典创建Series
#创建字典d
d={"name":"drf","age":26,"sex":"male"}
pd.Series(d)
2.数组创建Seires
import numpy as np
a = np.array([1,2,3,4])
pd.Series(a)
#创建索引为abcd的Series
pd.Series(a,index = list("abcd"))
3.实数创建Series
pd.Series(4)
pd.Series(4,index = list("abcd"))
创建DataFrame
#1.字典 创建DataFrame
pd.DataFrame(d,index=[0])
#2.字典的字典 创建DataFrame
dd={"A":{"name":"drf","age":26,"sex":"male"},"B":{"name":"yh","age":26,"sex":"female"}}
pd.DataFrame(dd)
#3.字典的列表 创建DataFrame
dl = {"A":[1,2,3,4],"B":[5,6,7,8]}
pd.DataFrame(dl)
pd.DataFrame(dl,index=list("abcd"))
#改变Key和Index互换位置( 函数pd.DataFrame.from_dict() )
pd.DataFrame.from_dict(d,orient="index")
#读取Player的DataFrame
pd.DataFrame(dd)
#虽然显示与Series相同,但是type不一样