数据处理
数据筛选
1 | import pandas as pd |
筛选
- 查看df前5行
1
df.head(5)
- 利用ix索引查找行号名为1的行记录
1
df.ix[1]
- 利用ix查找行号名为1-3的行记录
1
df.ix[1:3]
- 利用列名返回name列数据
1
df['name']
- 返回name与age列数据
1
df[['name','age']]
- 返回行名号为1、2的name与age列数据
1
df.ix[1:2,['name','age']]
- 返回gender列数据
1
2df['gender']
df.gender - 判断每行的gender列数据是否为M
1
df.gender=='M'
- 返回男性的行数据
1
df[df.gender=='M']
- 判断各行记录age列是否大于30
1
df.age>30
- 返回年龄大于30岁的行数据
1
df[df.age>30]
- 返回男性且年龄大于30的行数据
1
df.ix[(df.gender=='M') & (df.age>30),]
- 返回男性或年龄大于30的行数据
1
df.ix[(df.gender=='M') | (df.age>30),]
- df增加employee列,其值均为True
1
2
3
4
5df['employee']=True
```python
14. 利用del删除employee列
```python
del df['employee'] - 再次为df增加employee列
1
2df['employee']=True
df.head()#查看df前5行 - 利用df.drop函数删除employee列,按列删除
1
df = df.drop('employee',axis=1)
- 利用loc查看行号名为5的行数据
1
f.loc[5]
- 为df增加行号名为6的行数据,数据为{‘age’:20, ‘gender’: ‘F’, ‘name’:’qoo’}
1
df.loc[6]={'age':20, 'gender': 'F', 'name':'qoo'}
- 利用df.drop删除索引号为6的记录
1
df = df.drop(6)
- 利用df.append增加以上行数据到df中,ignore_index为True
1
df = df.append(pd.DataFrame([{'age':20, 'gender': 'F', 'name':'qoo'}]), ignore_index=True)
- 利用df.drop删除索引号为6的行数据
1
df.drop(6)
- 为df增加一列数据userid,值为101-106,提示:利用range函数
1
df['userid'] = range(101,107)
- 利用set_index设置userid为索引列,代替原来行号名
1
df = df.set_index('userid')
- oc——通过行(行名字)标签索引行数据 iloc——通过行号(行序号,从0开始)索引行数据 ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合)
1 | #分别利用行名与行序号返回第一条行数据 |
检测缺失值
1 | import pandas as pd |
数据操作
- 判断df的gender列每个单元格是否为空
1 | df.gender.isnull() |
- 判断df的age列是否存在空的单元格(结果只需知道有没有存在)
1 | df.age.isnull().any() |
- 判断df整个数据框是否存在空的单元格(结果只需知道有没有存在)
1 | df.isnull().values.any() |
- 求df的age列空的单元格的总数
1 | df.age.isnull().sum() |
- 求df所有列空单元格的总数
1 | df.isnull().sum().sum() |
Imputing Missing Value
1 | import pandas as pd |
- 删除
1 | #删除df具有Nan值的行 |
- 增加
1 | #在df中增加一新列employee,且值为空(np.nan) |
- 填补
1 | #填补df里任意空单元格的值为0 |
- 数据2
1 | df2 = pd.DataFrame([[1, 870],\ |
1 | #使用内插法对df2进行填补 |
实例
- 读取数据
1 | import pandas |
检视
- 检视前几行资料
1 | df.head(5) |
- 检视后三行资料
1 | df.tail(3) |
- 检视DataFrame 信息
1 | #查看df所有的信息(列名,各列非空计数,数据类型) |
- 检视字段名称
1 | #查看df所有列名 |
- 检视字段型态
1 | #查看df各列数据类型 |
舍弃第一栏
1 | #将文件读取进来,命名为df,并且在读取文件同时删除第1列 |
将”暂无资料”变成缺失值
1 | #筛选df数据框中“物业费”列的值为“暂无资料”的行记录 |
取得叙述性统计
1 | #对df各非字符串列进行描述性统计(计数,均值,标准差,最大最小,4分位等) |
侦测缺失值
1 | #对事个数据框df每个单元格进行缺失值判断 |
缺失值
1 | #对数据框各列分别进行判断,返回每列是否有缺失值 |
- 删除有缺失值的字段
1 | #用drop删除df的“参考月供”列数据 |
筛选字段
1 | #对数据框df的“产权性质”列所有出现的值进行计数 |
舍弃包含缺失值的字段
1 | #筛选建筑类别为空的行记录,并查看前3行,问,建筑类别列数据是否均为空 |
补齐缺失值
1 | #对物业费为空的单元格,填补为0 |
将资料写入CSV 中
1 | df.to_csv('house_final.csv', index_label=False) |