数据分析---pandas(一)

活动地址:CSDN21天学习挑战赛

Pandas基本介绍

Python Data Analysis Library 或 Pandas是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Pandas安装和引用

利用pip下载

pip install pandas

引用

import pandas as pd

Pandas 基本数据结构

pandas有两种常用的基本结构:

Series
一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很接近。Series能保存不同种数据类型,字符串、boolean值、数字等都能保存在Series中。

DataFrame
二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。

Pandas库的series类型

一维Series可以用一维列表初始化:

s = pd.Series([1,6,5,6,8,np.nan])
np.nan代表为空值
print(s)


结果如下:
0    1.0
1    6.0
2    5.0
3    6.0
4    8.0
5    NaN
dtype: float64

默认情况下,Series的下标都是数字(可以使用额外参数指定),类型是统一的。

索引(数据的行标签)

print(s.index )
# 从0到6(不含),1为步长

结果如下:
RangeIndex(start=0, stop=6, step=1)

print(s.values)

结果如下:
array([ 1.,6.,5.,6.,8.,np.nan])

切片操作

print(s[2:5])
#左闭右开

结果如下:
2    5.0
3    6.0
4    8.0
dtype: float64
print(s[::2])

结果如下:
0    1.0
2    5.0
4    8.0
dtype: float64

索引赋值

s.index.name = '索引'
print(s)


结果如下:
索引
0    1.0
1    6.0
2    5.0
3    6.0
4    8.0
5    NaN
dtype: float64
s.index = list('abcdef')
print(s)


结果如下:
a    1.0
b    6.0
c    5.0
d    6.0
e    8.0
f    NaN
dtype: float64
s['a':'c':2]
 #依据自己定义的数据类型进行切片,不是左闭右开了

结果如下:
a    1.0
c    6.0
dtype: float64

Pandas库的DataFrame类型

DataFrame则是个二维结构,这里首先构造一组时间序列,作为我们第一维的下标:

date = pd.date_range("20220101", periods = 6)
print(date)

结果如下:
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
               '2022-01-05', '2022-01-06'],
              dtype='datetime64[ns]', freq='D')

接着我们创建一个DataFrame结构:

import pandas as pd
import numpy as np
date = pd.date_range("20220101", periods = 6)
df = pd.DataFrame(np.random.randn(6,4), index = date, columns = list("abcd"))
print(df)

结果如下:
                   a         b         c         d
2022-01-01 -0.037068  0.552668 -1.296840 -1.599985
2022-01-02  1.123589  0.503648 -0.372351  1.572872
2022-01-03  0.991284  0.990300 -0.077618  1.085900
2022-01-04 -1.963700  1.105683 -0.589930  0.605076
2022-01-05  0.814758 -0.518774  0.333070 -1.589554
2022-01-06 -1.085519 -1.053977  2.225328 -1.508589

默认情况下,如果不指定index参数和columns,那么它们的值将从用0开始的数字替代。

查看数据

1、头尾数据

head和tail方法可以分别查看最前面几行和最后面几行的数据(默认为5):

df.head()	# 查看最前面几行的数据

df.tail()	# 查看最后面几行的数据

2、下标,列标,数据

  • 下标使用index属性查看:
df.index
  • 列标使用columns属性查看:
df.columns
  • 数据值使用values查看:
df.values

pandas读取数据及数据操作

豆瓣电影数据文件获取:
链接:https://pan.baidu.com/s/1WNz2YYkOTVc89OfvmxeZZQ?pwd=xx11
提取码:xx11
快速通道

import pandas as pd
df = pd.read_excel(r"C:\Users\豆瓣电影数据.xlsx",index_col = 0) 
# csv:read_csv;绝对路径或相对路径默认在当前文件夹下。
# r告诉编译器不需要转义
#  将文件路径改成自己电脑上的路径哦

行操作

print(df.iloc[0:4]) 
#左闭右开

结果如下:
		名字	投票人数			类型	产地	上映时间	时长		年代	评分	首映地点
0	肖申克的救赎	692795.0	剧情/犯罪	美国	1994-09-10 00:00:00	142	1994	9.6	多伦多电影节
1	控方证人	42995.0	剧情/悬疑/犯罪	美国	1957-12-17 00:00:00	116	1957	9.5	美国
2	美丽人生	327855.0	剧情/喜剧/爱情	意大利	1997-12-20 00:00:00	116	1997	9.5	意大利
3	阿甘正传	580897.0	剧情/爱情	美国	1994-06-23 00:00:00	142	1994	9.4	洛杉矶首映
print(df.loc[0:4] )
#不是左闭右开
结果如下:

		名字		投票人数	类型		产地		上映时间	时长	年代	评分	首映地点
0	肖申克的救赎	692795.0	剧情/犯罪	美国	1994-09-10 00:00:00	142	1994	9.6	多伦多电影节
1	控方证人	42995.0	剧情/悬疑/犯罪	美国	1957-12-17 00:00:00	116	1957	9.5	美国
2	美丽人生	327855.0	剧情/喜剧/爱情	意大利	1997-12-20 00:00:00	116	1997	9.5	意大利
3	阿甘正传	580897.0	剧情/爱情	美国	1994-06-23 00:00:00	142	1994	9.4	洛杉矶首映
4	霸王别姬	478523.0	剧情/爱情/同性	中国大陆	1993-01-01 00:00:00	171	1993	9.4	香港
# 添加一行
dit = {"名字":"流浪地球","投票人数":33346,"类型":"剧情/科幻","产地":"中国大陆","上映时间":"2020-10-01 00:00:00","时长":242,"年代":2020,"评分":np.nan,"首映地点":"中国大陆"}
s = pd.Series(dit)
s.name = 38738
df = df.append(s) #覆盖掉原来的数据重新进行赋值
print(df[-5:])
# 删除一行
df = df.drop([38738])
print(df[-5:])

列操作

print(df.columns)

结果如下:
Index(['名字', '投票人数', '类型', '产地', '上映时间', '时长', '年代', '评分', '首映地点'], dtype='object')

print(df["名字"][:5])

结果如下:
0    肖申克的救赎
1      控方证人
2     美丽人生 
3      阿甘正传
4      霸王别姬
Name: 名字, dtype: object
# 增加一列
df["序号"] = range(1,len(df)+1) 
print(df)
# 删除一列
df = df.drop("序号",axis = 1) #axis指定方向,0为行1为列,默认为0
print(df)

通过标签选择数据

df.loc[[index],[colunm]]通过标签选择数据

print(df.loc[1,"名字"])

结果如下:
'控方证人'

条件选择

1

2

缺失值及异常值处理

缺失值处理方法

方法说明
dropna根据标签中的缺失值进行过滤,删除缺失值
fillna对缺失值进行填充
isnull返回一个布尔值对象,判断哪些值是缺失值
notnullisnull的否定式
  • 判断缺失值
df[df["名字"].isnull()]
df[df["名字"].notnull()]
  • 填充缺失值
df["评分"].fillna(np.mean(df["评分"]), inplace = True)
 #使用均值来进行替代,inplace意为直接在原始数据中进行修改
  • 删除缺失值

df.dropna() 参数

how = ‘all’:删除全为空值的行或列
inplace = True: 覆盖之前的数据
axis = 0: 选择行或列,默认是行

df.dropna(inplace = True)
  • 处理异常值
    异常值,即在数据集中存在不合理的值,又称离群点。比如投票人数为负数等,都属于异常值的范围。
df[df["投票人数"] < 0]

数据保存

数据处理之后,然后将数据重新保存到movie.xlsx

df.to_excel("movie.xlsx") 
# 默认路径为现在文件夹所在的路径

下一篇点这里:
数据分析—pandas(二)
数据分析—pandas(三)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python是一种功能强大的编程语言,可以用于各种数据分析任务。而在Python数据分析工具库中,pandas是最受欢迎和广泛使用的工具之一。 Pandas提供了用于处理和分析数据的高级数据结构和函数。其最常用的数据结构是DataFrame,类似于Excel中的表格。通过Pandas,我们可以读取Excel文件,并将其转换为DataFrame对象进行进一步处理。 使用Pandas进行Excel数据分析的第一步是读取Excel文件。Pandas提供了read_excel函数,可以方便地读取Excel文件并转换为DataFrame对象。我们可以指定要读取的工作表、要保留的列、要跳过的行等。 一旦我们将Excel文件读取为DataFrame对象,我们可以使用Pandas提供的丰富函数和操作对数据进行各种处理和分析。例如,我们可以使用head()函数查看前几行数据,使用describe()函数获取数据的统计摘要,使用mean()函数计算平均值,使用groupby()函数对数据进行分组等等。 除了数据处理和分析,Pandas还提供了各种工具来处理缺失值和数据清洗。我们可以使用dropna()函数删除含有缺失值的行或列,使用fillna()函数将缺失值填充为指定的值,使用replace()函数替换数据中的特定值等。 在数据分析完成后,我们可以使用to_excel函数将DataFrame对象保存为Excel文件。在保存时,我们可以指定要保存的工作表、保存的位置和文件名等。 总之,Pandas是一个非常强大和灵活的库,可以使Python在处理Excel数据时变得更加简单和高效。无论是数据的读取、处理、分析还是保存,Pandas都提供了丰富而简洁的函数和操作,使得数据分析变得更加容易。 ### 回答2: Pandas是一个功能强大的数据分析工具,可以轻松地处理和分析各种数据。同时,Pandas还提供了许多用于读取、处理和写入Excel文件的功能,让我们能够更方便地从Excel文件中提取和处理数据。 在使用Pandas进行Excel数据分析时,我们首先需要使用`pandas.read_excel()`函数读取Excel文件,并将其存储为一个Pandas的DataFrame对象。这样可以轻松地使用Pandas的各种数据处理和分析功能。 Pandas提供了一系列的函数来处理Excel数据,比如对数据进行过滤、排序、计算统计量等。我们可以使用`head()`函数快速查看数据的前几行,使用`describe()`函数生成数据的统计概要信息,使用`sort_values()`函数对数据进行排序等。 除此之外,Pandas还提供了一些方便的函数来进行Excel数据的写入。我们可以使用`to_excel()`函数将DataFrame对象写入Excel文件,并通过参数来设置写入的Sheet名称、行列标签等。 除了基本的读写操作,Pandas还提供了丰富的数据转换和清洗功能,如数据合并、去重、填充空值等等。这些功能可以帮助我们更好地理解和分析Excel中的数据。 总而言之,Pandas是一个非常方便和强大的数据分析工具,可以让我们轻松地处理和分析Excel数据。通过Pandas,我们可以更加快速和高效地提取、清洗和分析数据,将Excel文件作为数据分析的重要来源之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器你今天学习了没

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值