安装numpy:
下载地址:https://pypi.org/project/numpy/#files,下载文件后,把whl文件放到python路径的Scripts文件夹中,cmd中cd转到该文件夹,然后输入pip3.8 install 文件名.whl,如果未安装pip则需要先安装。
安装pandas:
可以用pycharm中:file-settings-project interpreter中的加号,进行搜索安装
1 读取文件
1.1 读取csv文件
import numpy as np
import pandas as pd
#读取文件
file_path = r'G:\hotel_bookings.csv'
df=pd.read_csv(file_path)
(read为读取模式,不会对原表格进行任何修改)
pd.to_csv() #写入模式
1.2 规范数据类型
当我们读取 csv 中一串数字的时候,有的时候数值类型的数字被读成字符串的数字,或将字符串的数字读成数据值类型的数字。Pandas 还是提供了规范化我们数据类型的方式:
df = pd.read_csv('../data/moive_metadata.csv', dtype={
'duration': int})
2 数据表信息查看
2.1 查看数据记录数,字段数
print(df.shape)
(119390, 32)
2.2 查看数据表结构(列名称、非空数量、数据格式等)
df.info()
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 hotel 119390 non-null object
1 is_canceled 119390 non-null int64
2 lead_time 119390 non-null int64
3 arrival_date_year 119390 non-null int64
4 arrival_date_month 119390 non-null object
print(df.columns) #查看所有字段名称
print(df.values) #查看数据表的所有值
print(df.dtypes) #查看所有字段格式
print(df['hotel'].dtype) #查看某一个字段的格式
print(df.isnull()) #查看所有列的数据是否为空
print(df['hotel'].isnull()) #查看某一列的数据是否为空
查看某一列的唯一值(排除重复项)
print(df['hotel'].unique())
查看前10行、后10行数据
df.head() #默认前10行数据
df.tail() #默认后10 行数据
2.3 统计缺失值
df.isnull().sum()统计每个字段的缺失值数量
df.isnull().sum()[df.isnull().sum()!=0]
shownull = df.isnull().sum()
print(shownull[shownull!=0])
结果:
children 4
country 488
agent 16340
company 112593
dtype: int64
[Finished in 1.7s]
3 数据清洗
复制副本
df_new = df.copy(deep = True)
3.1 填充缺失值
3.1.1用数字0填充空值:
df.fillna(value=0) # 表中所有的空值都被0替代
df['agent'].fillna(value=0) #agent这一列的空值被0替代
3.1.2 用均值、众数填充NA
df['agent'].fillna(df['agent'].mean()) # 均值填充
df.fillna(value = {
'gender':df.gender.mode()[0], ##众数
'age':df.age.mean(), ##均值
'income':df.income.median() ##中位数
}
)
3.2 删除值
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’)
axis 默认等于0,删除的是行,axie=1,删除的 是列
3.2.1 删除行
删除nan值
df.dropna() #将所有含有nan项的row都删除
df