0 --- 前情提要(pandas)

2023-11-22 19:30
文章标签 pandas 提要

本文主要是介绍0 --- 前情提要(pandas),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【问题1】分组聚合-----非时间类型
import pandas as pd
from matplotlib import pyplot as pltdf = pd.read_csv('./books-Copy1.csv')# step1:去掉"年份"中的缺失值
df1 = df[ pd.notnull(df['original_publication_year']) ]# step2:按照”年份“分组,再求评分的平均值
'''
注意:下面这3种方式是一样的。推荐第二种
(1)应该先groupby完后,再选“rating”列,最后求均值mean()。这个顺序更好 
'''
data1 = df1.groupby( by=df['original_publication_year'] )['average_rating'].mean()data1 = df1.groupby( by=df['original_publication_year'] ).mean()['average_rating']data1 = df1['average_rating'].groupby( by=df['original_publication_year'] ).mean()print(data1)
original_publication_year
-1750.0    3.630000
-762.0     4.030000
-750.0     4.005000
-720.0     3.730000
-560.0     4.050000...   2013.0    4.0122972014.0    3.9853782015.0    3.9546412016.0    4.0275762017.0    4.100909
Name: average_rating, Length: 293, dtype: float64
【问题2】 分组聚合------时间类型步骤:
(1)先将时间字符串转化为时间类型                       df['timeStamp'] = pd.to_datetime(df['timeStamp'])(2)再将该列设置为索引                                 df.set_index('timeStamp', inplace=True# 默认删除原列。inplace=True,对df原地修改注意:只有设置为索引后,才能对时间类型进行分组聚合  (3)对时间序列进行分组聚合例如:按照“月”计数。取“title”列                count_by_month = df.resample('M'.count()['title']     #   时间类型的分组聚合例如:按照“cate”列计数。取“title”列            grouped = df.groupby(by='cate').count()['title']         # 非时间类型的分组聚合
# 统计不同月份的电话次数的变化情况
import pandas as pd
from matplotlib import pyplot as pltdf = pd.read_csv('./911-Copy1.csv')# step1
df['timeStamp'] = pd.to_datetime(df['timeStamp'])       # (1)将时间字符串转化为时间类型------- pd.to_datetime()
df.set_index('timeStamp', inplace=True)                # (2)将该列设置为索引--------df.set_index ,默认删除原列     
count_by_month = df.resample('M').count()['title']      # (3)时间类型的分组聚合------取“title”列          “title”-----表示不同类型的事件print(df.head())
print(count_by_month)# step2
_x = count_by_month.index
_y = count_by_month.values_x = [i.strftime('%Y%m%d') for i in _x]                # 将_x格式化:只有“xx年xx月xx日”plt.figure(figsize=(20,8), dpi=80)
plt.plot(range(len(_x)), _y, label='title')
plt.xticks(range(len(_x)), _x, rotation=45)
plt.legend(loc='best')                                 # plt.legend()-----设置图例。与参数label=“title”相对应
plt.show()
                           lat        lng  \
timeStamp                                   
2015-12-10 17:10:52  40.297876 -75.581294   
2015-12-10 17:29:21  40.258061 -75.264680   
2015-12-10 14:39:21  40.121182 -75.351975   
2015-12-10 16:47:36  40.116153 -75.343513   
2015-12-10 16:56:52  40.251492 -75.603350   desc  \
timeStamp                                                                
2015-12-10 17:10:52  REINDEER CT & DEAD END;  NEW HANOVER; Station ...   
2015-12-10 17:29:21  BRIAR PATH & WHITEMARSH LN;  HATFIELD TOWNSHIP...   
2015-12-10 14:39:21  HAWS AVE; NORRISTOWN; 2015-12-10 @ 14:39:21-St...   
2015-12-10 16:47:36  AIRY ST & SWEDE ST;  NORRISTOWN; Station 308A;...   
2015-12-10 16:56:52  CHERRYWOOD CT & DEAD END;  LOWER POTTSGROVE; S...   zip                    title                twp  \
timeStamp                                                                  
2015-12-10 17:10:52  19525.0   EMS: BACK PAINS/INJURY        NEW HANOVER   
2015-12-10 17:29:21  19446.0  EMS: DIABETIC EMERGENCY  HATFIELD TOWNSHIP   
2015-12-10 14:39:21  19401.0      Fire: GAS-ODOR/LEAK         NORRISTOWN   
2015-12-10 16:47:36  19401.0   EMS: CARDIAC EMERGENCY         NORRISTOWN   
2015-12-10 16:56:52      NaN           EMS: DIZZINESS   LOWER POTTSGROVE   addr  e  
timeStamp                                           
2015-12-10 17:10:52      REINDEER CT & DEAD END  1  
2015-12-10 17:29:21  BRIAR PATH & WHITEMARSH LN  1  
2015-12-10 14:39:21                    HAWS AVE  1  
2015-12-10 16:47:36          AIRY ST & SWEDE ST  1  
2015-12-10 16:56:52    CHERRYWOOD CT & DEAD END  1  
timeStamp
2015-12-31     7916
2016-01-31    13096
2016-02-29    11396
2016-03-31    11059
2016-04-30    11287
2016-05-31    11374
2016-06-30    11732
2016-07-31    12088
2016-08-31    11904
2016-09-30    11669
2016-10-31    12502
2016-11-30    12091
2016-12-31    12162
2017-01-31    11605
2017-02-28    10267
2017-03-31    11684
2017-04-30    11056
2017-05-31    11719
2017-06-30    12333
2017-07-31    11768
2017-08-31    11753
2017-09-30    11332
2017-10-31    12337
2017-11-30    11548
2017-12-31    12941
2018-01-31    13123
2018-02-28    11165
2018-03-31    14923
2018-04-30    11240
2018-05-31    12551
2018-06-30    12106
2018-07-31    12549
2018-08-31    12315
2018-09-30    12338
2018-10-31    12976
2018-11-30    14097
2018-12-31    12144
2019-01-31    12304
2019-02-28    11556
2019-03-31    12441
2019-04-30    11845
2019-05-31    12823
2019-06-30    12322
2019-07-31    13166
2019-08-31    12387
2019-09-30    11874
2019-10-31    13425
2019-11-30    12446
2019-12-31    12529
2020-01-31    12208
2020-02-29    11043
2020-03-31     9920
2020-04-30     8243
2020-05-31     7220
Freq: M, Name: title, dtype: int64

在这里插入图片描述

【问题3】关于索引
若“one”为列  :则a['one']
若“one”为索引:则a.loc['one'] 

这篇关于0 --- 前情提要(pandas)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/412397

相关文章

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav

【Python从入门到进阶】64、Pandas如何实现数据的Concat合并

接上篇《63.Pandas如何实现数据的Merge》 上一篇我们学习了Pandas如何实现数据的Merge,本篇我们来继续学习Pandas如何实现数据的Concat合并。 一、引言 在数据处理过程中,经常需要将多个数据集合并为一个统一的数据集,以便进行进一步的分析或建模。这种需求在多种场景下都非常常见,比如合并不同来源的数据集以获取更全面的信息、将时间序列数据按时间顺序拼接起来以观察长期趋势等

win7下安装Canopy(EPD) 及 Pandas进行python数据分析

先安装好canopy,具体安装版本看自己需要那种,我本来是打算安装win764位的,却发现下载总是出现错误,无奈只能下载了32位的! https://store.enthought.com/downloads/#default 安装好之后,参考如下连接,进行检验: 之后再根据下面提供的连接进行操作,一般是没问题的! http://jingyan.baidu.com/article/5d6

11Python的Pandas:可视化

Pandas本身并没有直接的可视化功能,但它与其他Python库(如Matplotlib和Seaborn)无缝集成,允许你快速创建各种图表和可视化。这里是一些使用Pandas数据进行可视化的常见方法: 1. 使用Matplotlib Pandas中的plot()方法实际上是基于Matplotlib的,你可以使用它来绘制各种基本图表,例如折线图、柱状图、散点图等。 import pandas

jupyter在加载pkl文件时报错ModuleNotFoundError: No module named 'pandas.core.internals.managers'; '的解决方法

笔者当看到这个错误的时候一脸懵逼,在pycharm上正常运行的code 放在jupyter就不成了,于是就研究一翻。 一开始以为自己的pkl文件有问题,研究重点放在这里,最后发现不是。 然后取搜索pycharm和jupyter下的python的\Lib\site-packages\pandas\core\internals有什么不同 发现jupyter下没有pandas\core\intern

数据处理与数据填充在Pandas中的应用

在数据分析和机器学习项目中,数据处理是至关重要的一步。Pandas作为Python中用于数据分析和操作的一个强大库,提供了丰富的功能来处理和清洗数据。本文将深入探讨Pandas在数据处理,特别是数据填充方面的应用。 在实际的数据集中,缺失值(Missing Values)或异常值(Outliers)是常见的问题。这些不完整或错误的数据如果不加以处理,会严重影响数据分析的准确性和机器学习模型的性能

【python pandas】 Dataframe的数据print输出 显示为...省略号

pandas.set_option() 可以设置pandas相关的参数,从而改变默认参数。 打印pandas数据事,默认是输出100行,多的话会输出….省略号。 那么可以添加: pandas.set_option('display.max_rows',None) 这样就可以显示全部数据 同样,某一列比如url太长 显示省略号 也可以设置。 pd.set_option('display.

Python|玩转 Excel:Pandas、openpyxl、pywin32

文章目录 引言Pandas读取 Excel写入 Excel数据操作样式设置数据验证公式支持 openpyxl读取 Excel写入 Excel数据操作样式设置数据验证公式支持图表创建 xlrd / xlwt读取 Excel(xlrd)写入 Excel(xlwt) pyxlsb读取 Excel(pyxlsb) xlsxwriter写入 Excel样式设置公式支持图表创建 pywin32 (Win