数据分析----Pandas常用命令整理

在这里插入图片描述


前言

最近在学习一些数据挖掘方面的内容,发现涉及到csv文件处理的必定是离不开Pandas命令的,而且Pandas的强大远远超出我的认知,相比于自己写一些功能代码,使用Pandas 命令处理起来要更加方便、快速,代码也更加简洁。下面整理一些常用的到的Pandas命令。
文中代码建议在 jupyter notebook 中运行


一、基本命令

以下面这个作为要处理的例子:

data=pd.DataFrame({
    "name":['Bob','Mike','James','John','Neix','Amy','Sera','Lee','Jay','Claso','Bio','David'],
    "area":['A','A','B','C','C','C','B','A','C','C','A','B'],
    "age":[24, 23, 16, 22, 34, 11, 23, 28, 26, 41, 25, 42],
    "weight":[54, 55, 51, 59, 50, 56, 56, 55, 66, 76, 69, 54]
    
})

在这里插入图片描述

1、基础命令

令data是读取csv文件后的DataFrame
data.head(n)————————显示前n行数据
data.tail(n)————————显示后n行数据

data1 = data.set_index("xxx")————————将xxx列设置为索引

data.infoo()————————获取 dataFrame 的大致信息(有无缺失值、占用内存等)
data.describe()————————获取基本的统计值信息(最大值/最小值、方差等)

2、进阶命令

2.1 Groupby() :根据一个或多个列中的值对数据进行分组,然后对每个组执行聚合操作

2.1.1 配合 sum()/mean()操作
按照地区分类求年龄总和(平均值:.mean())

在这里插入图片描述

最终显示时发现索引列不在同一行上,可以使用.reset_index()解决。

在这里插入图片描述

2.1.2 配合 agg() 操作——更常用

用法:grouped_data = data.groupby('分组列').agg(操作函数)
在这里插入图片描述

按照地区分类求年龄和体重平均值

在这里插入图片描述

按照地区分类只求体重的最大值

在这里插入图片描述

如果想针对不同的列采取不同处理,可以使用字典指定相应的操作

例如:按照地区分类,求年龄的均值和体重的最大值

在这里插入图片描述

2.1.3 配合 apply() 操作——更灵活

apply能够传入自定义函数,实现更复杂的操作(agg也可以)

按照地区分类,求年龄和体重的平均值,保留1位小数
def avg(row):
    return round(row.mean(), 1)
c = data.groupby('area').apply(avg)
c

在这里插入图片描述

2.2 map():映射操作

2.2.1 使用字典映射
将area的大写字母换成小写字母

在这里插入图片描述

2.2.1 使用函数映射

在这里插入图片描述

2.3 筛选操作

2.3.1 常规筛选命令
筛选出年龄大于30且体重大于60的所有数据

在这里插入图片描述
注意:在 Pandas 中,使用 & 符号代替 and,使用 | 符号代替 or,否则会报错。

2.3.2 loc和iloc命令—类似列表切片

loc:使用标签索引进行筛选
iloc:使用位置索引进行筛选

# 通过单个标签选择一行数据
# 下面两个代码结果相同,但是要注意1的含义不同
data.loc[1]        # 行标签为1
data.iloc[1]   	   # 1代表第二行
'''
name      Mike
area         A
age         23
weight      55
Name: 1, dtype: object
'''

# 通过标签列表选择多行数据
data.loc[[1,3]]
data.iloc[[1,3]]
'''
    name	area	age   weight
1	Mike	  A	     23	   55
3	John	  C	     22	   59
'''

# 通过标签范围选择多行数据
data.loc[1:3]    #左闭右闭
data.iloc[1:4]   # 左闭右开
'''
    name	area	age	  weight
1	Mike	  A	     23	   55
2	James	  B	     16	   51
3	John	  C	     22	   59
''' 

# 通过列标签进行筛选
data.loc[:,'name']
'''
0       Bob
1      Mike
2     James
3      John
4      Neix
5       Amy
6      Sera
7       Lee
8       Jay
9     Claso
10      Bio
11    David
Name: name, dtype: object
'''
2.3.3 str.contains用法:Series中用于查找子字符串

用法:

s.str.contains(pat, case=True, flags=0, na=nan)  #s为 series

pat: 要查找的子字符串,可以是正则表达式。
case: 是否区分大小写,默认为 True。
flags: 用于控制正则表达式的行为。
na: 当某个元素为缺失值(NaN)时,返回什么值,默认为 NaN

将姓名首字母A到G的数据筛选出来

在这里插入图片描述

3、日期(时间)处理

添加一列随机的日期数据:

data['date'] = pd.Series(['2015/08/06','2015/04/19','2016/11/11','2015/01/30','2016/09/01',
                          '2015/02/02','2016/07/16','2016/03/19','2016/06/10','2015/12/15',
                          '2016/10/27','2016/05/22'])

将数据类型转换为标准日期类型

data['date'] = pd.to_datetime(data['date'])

在这里插入图片描述

3.1基本命令

3.1.1 将所有数据按时间顺序排列
data.sort_values(by='date',ascending=True,inplace=False)

ascending:Ture为升序,False为降序

在这里插入图片描述

3.1.2 筛选某一时间段的数据——truncate方法

truncate:用于按照给定的开始和结束时间戳截断时间序列型数据。它可以用于索引为 DatetimeIndex 的 DataFrame 或 Series 对象中,但是在使用之前需要确保索引已经按照时间序列排序

用法:

DataFrame.truncate(before=None, after=None, axis=None, copy=True)

或者

Series.truncate(before=None, after=None, copy=True)

before: 提取开始时间,类型为字符串或者时间戳。
after: 提取结束时间,类型为字符串或者时间戳。
axis: 可选参数,如果是 DataFrame,可以指定 0 行轴或 1 列轴,默认为 0。
copy: 如果为 True, 返回新的 DataFrame 或 Series 或者视图;如果为 False, 返回原始的 DataFrame 或 Series 或者视图(如果没有复制),默认为 True。

筛选得到2015年年初到年中的所有数据
# 将date列设置为索引
df = data.set_index("date")
# 对索引按照时间顺序排序
df.sort_values(by='date',ascending=True,inplace=True)

# 提取 2015-01-01 到 2015-06-30 之间的数据
start_date = "2015-01-01"
end_date = "2015-06-30"
df_1 = df.truncate(before=start_date, after=end_date)
df_1.reset_index()

在这里插入图片描述

3.2 季节处理

3.1.1 按阴历划分
1—3月
4—6月
7—9月
10—12月

代码(效果:新增一列,获取每个日期对应的季节):

# 使用dt.month属性获取每个日期的月份信息
months = data['date'].dt.month

# 根据月份信息生成季节信息
seasons = ((months + 2) // 3).map({1: '春', 2: '夏', 3: '秋', 4: '冬'})

# 将季节信息添加到DataFrame中
data['season'] = seasons

在这里插入图片描述

3.1.1 按阳历划分
3—5月
6—8月
9—11月
12—次年2月

将上面的seasons改为:

seasons = ((months % 12 + 3) // 3).map({1: '冬', 2: '春', 3: '夏', 4: '秋'})

在这里插入图片描述

总结

本文后续会长期更新,作为一份简单速查的Pandas笔记,方便快速处理一些简单的数据分析问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值