python数据分析【1】pandas

本文介绍了使用Python的pandas库进行数据分析的基本操作,包括读取csv文件、规范数据类型、查看数据表信息、数据清洗、数据整理、创建数据表、数据表处理等。重点讲解了数据清洗中的缺失值处理、数据类型转换和数据替换,以及数据表的合并、排序和条件判断等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值