精华内容
下载资源
问答
  • pandas时间排序

    千次阅读 2020-03-15 12:15:59
    时间排序pandas中,有一个非常常用的函数 date_range,尤其是在处理时间序列数据时,这个函数的作用就是产生一个 DatetimeIndex,就是时间序列数据的索引。 pandas.date_range(start=None,end...

                                                                      时间排序

     

    在 pandas 中,有一个非常常用的函数 date_range,尤其是在处理时间序列数据时,这个函数的作用就是产生一个 DatetimeIndex,就是时间序列数据的索引。

     

    pandas.date_range(start=Noneend=Noneperiods=Nonefreq=Nonetz=Nonenormalize=Falsename=Noneclosed=None**kwargs) → pandas.core.indexes.datetimes.DatetimeIndex

    返回一个固定频率的DatetimeIndex。

    参数:

        start:str 或 datetime-like,可选,默认值是None,表示日期的起点。

        end:str 或 datetime-like,可选,默认值是None,表示日期的终点。

        periods:int,可选,默认值是None,表示你要从和这个函数产生多少个日期索引值(要生成的周期数);如果是None的话,那么 start 和 end 必须不能为 None。

        freq:str 或 DateOffset,默认 “D”,表示以自然日为单位,这个参数用来指定计时单位,比如 “5H”表示每隔5个小时计算一次。

    名称说明 
    B业务日频率 
    C自定义业务日频率 
    D日历天频率 
    W每周一次的频率 
    M月结束频率 
    SM月结频次(15次、月末) 
    BM

    业务月末频率

     
    CBM

    自定义业务月底频率

     
    MS月开始频率 
    SMS开始频率(1号、15号) 
    BMS

    业务月开始频率

     
    CBMS

    自定义业务月开始频率

     
    Q季度结束频率 
    BQ

    业务季度结束频率

     
    QS

    季度开始频

     
    BQS

    季度开始频率

     
    A, Y年底频率 
    BA, BY

    业务年度结束频率

     
    AS, YS

    年开始频

     
    BAS, BYS

    业务年度开始频率

     
    BH

    营业时间频率

     
    H每小时的频率 
    T, min

    每分钟的频率

     
    S每秒频率 
    L, ms毫秒 
    U, us微秒 
    N纳秒 

        tz:str 或 tzinfo,可选,返回本地化的DatetimeIndex的时区名称,例如' Asia/Hong_Kong '。默认情况下,生成的DatetimeIndex是与时区无关的。

    normalize:bool,默认 False。如果为 True 的话,那么在产生时间索引值之前会先把 start 和 end 都转化为当日的午夜 0 点。

    name:str,默认 None。给返回的时间索引指定一个名字。

    closed:{None, ‘left’, ‘right’},可选。默认值为 None,表示 start 和 end 这个区间端点是否包含在区间内,可以有三个值,“left” 表示左闭右开区间,“right” 表示左开右闭区间,None 表示两边都是闭区间。

    **kwargs:兼容性,对结果没影响。

    import pandas as pd, numpy as np
    
    # 创建时间序列(默认 freq="D")
    time_index = pd.date_range(start="2020-03-01", end="2020-03-15")
    print(time_index)
    # 运行结果:
    DatetimeIndex(['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04',
                   '2020-03-05', '2020-03-06', '2020-03-07', '2020-03-08',
                   '2020-03-09', '2020-03-10', '2020-03-11', '2020-03-12',
                   '2020-03-13', '2020-03-14', '2020-03-15'],
                  dtype='datetime64[ns]', freq='D')
    
    # 创建 10 个时间序列
    time_index02 = pd.date_range(start="2020-03-01", periods=10)
    print(time_index02)
    # 运行结果:
    DatetimeIndex(['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04',
                   '2020-03-05', '2020-03-06', '2020-03-07', '2020-03-08',
                   '2020-03-09', '2020-03-10'],
                  dtype='datetime64[ns]', freq='D')
    
    # 创建一个时间序列,步长 3 天
    time_index03 = pd.date_range(start="2020-03-01", periods=10, freq="3D")
    print(time_index03)
    # 运行结果:
    DatetimeIndex(['2020-03-01', '2020-03-04', '2020-03-07', '2020-03-10',
                   '2020-03-13', '2020-03-16', '2020-03-19', '2020-03-22',
                   '2020-03-25', '2020-03-28'],
                  dtype='datetime64[ns]', freq='3D')
    
    # 创建一个时间序列,以分钟为步长
    time_index04 = pd.date_range(start="2020-03-01", periods=10, freq="S")
    print(time_index04)
    # 运行结果:
    DatetimeIndex(['2020-03-01 00:00:00', '2020-03-01 00:00:01',
                   '2020-03-01 00:00:02', '2020-03-01 00:00:03',
                   '2020-03-01 00:00:04', '2020-03-01 00:00:05',
                   '2020-03-01 00:00:06', '2020-03-01 00:00:07',
                   '2020-03-01 00:00:08', '2020-03-01 00:00:09'],
                  dtype='datetime64[ns]', freq='S')
    
    data = np.random.randint(3000, 3010, 10)
    print(data)
    # 运行结果:
    [3001 3005 3001 3009 3002 3008 3002 3000 3001 3003]
    
    time_index05 = pd.Series(data, time_index04)
    print(time_index05)
    # 运行结果:
    2020-03-01 00:00:00    3001
    2020-03-01 00:00:01    3005
    2020-03-01 00:00:02    3001
    2020-03-01 00:00:03    3009
    2020-03-01 00:00:04    3002
    2020-03-01 00:00:05    3008
    2020-03-01 00:00:06    3002
    2020-03-01 00:00:07    3000
    2020-03-01 00:00:08    3001
    2020-03-01 00:00:09    3003
    Freq: S, dtype: int32

     

    展开全文
  • Pandas按照某列值排序

    千次阅读 2019-08-06 18:47:06
    函数: pd.sort_values("feature_name",inplace=True) 表示pd按照"feature_name"这个字段排序; inplace:默认为False,如果该值为False,... ascending:默认为True,按照升序排序,为False时,按照降序排序。 ...

     函数:

      pd.sort_values("feature_name",inplace=True)

      表示pd按照"feature_name"这个字段排序;

      inplace:默认为False,如果该值为False,那么原来的pd顺序没变,只是返回的是排序的;

      ascending:默认为True,按照升序排序,为False时,按照降序排序。

    展开全文
  • === 排序 === 原数据: data1 = pd.DataFrame(np.random.randint(0,9,[5,5]), index=list('abcde'), columns=list('ABCDE')) 1...

    === 排序 ===

    原数据:

    data1 = pd.DataFrame(np.random.randint(0,9,[5,5]),
                         index=list('abcde'),
                         columns=list('ABCDE'))
    

    1、索引排序 sort_index

    ascending默认True 升序
    axis默认0 行索引

    data1.sort_index(ascending=False,axis=1)
    
    img_916b40a02087de93da48e502025d725c.png

    2、值排序 sort_values

    sort_values 默认列排序
    data1.sort_values('E')
    
    img_ebfb9b826480f76a5f91daf98182e617.png
    sort_values 行排序
    data1.T.sort_values(by='a').T
    
    img_5c58a49b32279feb0147013e6c73d8e5.png
    下面行排序的写法始终报错,不知为何
    data1.sort_values(by='a',axis=1,ascending=False)
    

    ValueError: When sorting by column, axis must be 0 (rows)

    3、所有行或列排序

    data1.apply(np.sort,axis = 1) 
    
    img_b3386138affb61876e7bc9cb22f92ac8.png
    image.png

    === 排名 ===

    场景:数据的位置还是原来的位置(不排序),但我想知道是第几名

    原数据:

    ser1 = pd.Series([3,1,5,2,5],index=list('abcde'))
    ser1
    
    a    3
    b    1
    c    5
    d    2
    e    5
    dtype: int64
    

    排名 rank

    参数 method 默认='average' max、min 共用最大最小;first 第一次出现的排名靠前

    ser1.rank(method='first')
    
    a    3.0
    b    1.0
    c    4.0
    d    2.0
    e    5.0
    dtype: float64
    

    === 时间序列 ===

    1、 创建苹果12个月的股票值

    apple_share = pd.Series(np.random.randint(1000,3400,12))
    apple_share
    
    0     1509
    1     2806
    2     1030
    3     1084
    4     3023
    5     3098
    6     3289
    7     3003
    8     1544
    9     2442
    10    1226
    11    1767
    dtype: int32
    

    2、 生成时间序列

    默认以天生成
    以月份来生成 freq='M' 天=D
    如果不确定结束时间,可以制定生成多少个 periods

    apple_index = pd.date_range(start='20170101',periods=12,freq="M")
    
    apple_index = pd.date_range(start='20170101',end='20171231',freq="M")
    apple_index
    
    DatetimeIndex(['2017-01-31', '2017-02-28', '2017-03-31', '2017-04-30',
                   '2017-05-31', '2017-06-30', '2017-07-31', '2017-08-31',
                   '2017-09-30', '2017-10-31', '2017-11-30', '2017-12-31'],
                  dtype='datetime64[ns]', freq='M')
    

    3、 创建苹果股票的日期序列

    apple_share.index = apple_index
    apple_share
    
    2017-01-31    1509
    2017-02-28    2806
    2017-03-31    1030
    2017-04-30    1084
    2017-05-31    3023
    2017-06-30    3098
    2017-07-31    3289
    2017-08-31    3003
    2017-09-30    1544
    2017-10-31    2442
    2017-11-30    1226
    2017-12-31    1767
    Freq: M, dtype: int32
    
    展开全文
  • 使用pandas对excel排序

    千次阅读 2019-09-27 11:10:25
    取excel某一列,把这一列的部分内容替换掉 #把机构这一列为合肥分中心的替换为"集中作业处(合肥)" dates.loc[dates["机构"]=="合肥分中心","机构"]="集中作业处(合肥)" ...第一排序为机构二,第二排序为人员编号...

    取excel某一列,把这一列的部分内容替换掉

    
    #把机构这一列为合肥分中心的替换为"集中作业处(合肥)"
    dates.loc[dates["机构"]=="合肥分中心","机构"]="集中作业处(合肥)"
    
    #把机构这一列为空白的部分替换为"集中作业处(上海)"
    dates["机构"] = dates["机构"].fillna("集中作业处(上海)")   
    
    

    第一排序为机构二,第二排序为人员编号

    import pandas as pd
    
    df = pd.read_excel(r'C:\Users\86159\Desktop\test1.xlsx')
    print(df)
    a=df.sort_values(by=["机构二","人员编号"],ascending=True)
    
    
    展开全文
  • 2.将文件中的数据按照CommitTime排序;3.将排好序的数据每两个月作为训练数据,隔两个月作为测试数据,生成若干个文件,分别命名为:data_i_fit.csv,data_i_est.csv.比如第1、2月作为训练数据,5、6月作为测试数据。 ...
  • 设有如下的多重索引的dataframe 要实现的功能为,按ID列降序,number列升序排列 dataframe.sort_index(level=[0,1],ascending=[False,True])
  • pandas分组后排序问题

    千次阅读 2019-08-10 01:01:06
    先进行整体的sort_values,再进行grouby https://blog.csdn.net/guofei_fly/article/details/93844612
  • 最近在用pandas对数据做处理,可是发现一个很bug的问题 源数据中,月份是用“1月,2月,3月 … 12月”来表示的,这样做完pivot_table以后,就编程了“10月,11月,12月,1月,2月 … 9月"这样的顺序。 尝试使用sort_...
  • pandas时间序列 上面是获取时间,然后将时间作为索引使用,因为有了时间索引,所以本身的time就没用了,所以在下面删除。 查看数据 查看每天的平均值 每小时的平均值 每周 每5分钟一次 ...
  • Pandas对数据进行排序标记(rank函数) 现有一个问题: 数据是多个重复两遍的user_id,想新建一列,给重复的user_id标号,1和2。 具体功能如图: 使用groupby和rank函数即可实现上述功能。 具体代码如下: # 注: ...
  • pandas之分组groupby并排序

    千次阅读 2019-12-31 09:16:15
    比如 hour_count的列名为—— hour_count.columns  Index(['hour', 'event_label', 'count'], dtype='object' ...tt = hour_count.groupby("hour")....则可以让tt按照hour分组后,按照count排序    
  • import pandas as pd #路径 path = './a.xlsx' #sheet_name 代表哪个sheet,0代表第一个;因为是xlsx格式,用read_excel读取 data = pd.read_excel(path, sheet_name = 0) #思路:将日期列变为索引,然后排序,便于...
  • pandas 时间序列的时间读取

    千次阅读 2019-12-28 13:45:37
    当年、月、日、时、分、秒处于 csv 文件的不同列时,用 pandas 读取到一列,并转化成 datetime 类型
  • 一、数据的排序 (一)基本概念: 一组数据表达一个或多个含义,通过摘要(有损的地提取数据特征的过程),得到:基本统计(含有排序)、分布/累计统计、数据特征(相关性、周期性)、数据挖掘(形成知识) (二...
  • python pandas 数据groupby后排序

    千次阅读 2020-07-09 00:29:12
    python pandas 数据groupby后排序 import pandas as pd import numpy as np df = pd.DataFrame(pd.read_csv(r"/Users/fjj/Desktop/students_complete.csv")) #打印前10行数据 print(df.head(10)) #计算学生的数学...
  • 同上本节主要介绍pandas两个基本功能,排序和映射,写这个的目的只是简单的记录一下我的理解,其中肯定会有错误或者不全面看的时候要注意一下。 第一: 本节介绍的排序操作是指,根据原始数据中某列数据中值的大小...
  • python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到,而pandas则可以对时间进行序列化排序
  • pandas的切片功能非常强大,对于包含datetime类型列的dataframe和使用datetimeIndex的Series,通过给定datetime形式的字符串('2019-07-26 08:00:00', '2019-07', '2019-07-26', '2019-07-26 08:00')即可进行日期...
  • 2、生成一列sum_age_new 按照 gender和is_good 对age进行累加 df['sum_age_new'] = df.groupby(['gender','is_good'])['age'].cumsum() print(df) 3、根据不同的性别对年龄进行排序 df['rank_g'] = df.group...
  • 一、pandas数据排序 1、series的排序 Series.sort_values(ascending=True, inplace=False) 参数说明: ascending:默认为True:升序排序,为False降序排序 inplace:True修改原始数据 False不修改原数据 data["pm...
  • Pandas分类 categorical data是指分类数据:数据类型为:男女、班级(一班、二班)、省份, 使用赋值法给变量赋值,例如(男=1,女=0),数字1, 0之间没有大小之分,不能认为1是比0大的 numerical data是指数值型...
  • 我这本文章中先导入包,读取了本地的一个文件,内容有字符串、时间。 # import导入模块 import pandas as pd import numpy as np # 读取Excel文件 data = pd.read_excel('./meal_order_detail.xlsx') print(data....
  • 文章目录一、数据整形(stack...排序(sort_values())3.统计个数(groupby().size()) 一、数据整形(stack函数) 在用pandas进行数据重排时,经常用到stack和unstack两个函数。stack的意思是堆叠,堆积,unstack即
  • 现在我们有2015到2017年25万条911的紧急电话的数据,请统计出出这些数据中不同类型的紧急情况的...import pandas as pd import numpy as np from matplotlib import pyplot as plt file_path='C:/Users/ming/Desktop/D
  • import pandas as pd import numpy as np data=pd.read_excel(r'meal_order_detail.xlsx') print(data.shape) (2779, 19) print(data.columns) Index(['detail_id', 'order_id', 'dishes_id', 'logicprn_name', ...
  • dates = pd.date_range('20200715', periods=6) #df设置一段时间作为索引 print(dates) df = pd.DataFrame(np.random.randn(6, 5), index=dates, columns=list('ABCDE')) print(df.columns.values) # 输出列名值...
  • dataframe依据时间排序

    千次阅读 2019-08-14 03:17:44
    import pandas as pd import calendar def change_date(date):#将日期转化为时间戳 date_list = date.replace(',', '').split(' ') num_date = str(list(calendar.month_name).index(date_list[0])) + '-' + ...
  • 作者:小小明,Pandas数据处理专家,致力于帮助无数数据从业者解决数据处理难题。 需求说明 有一份下面格式用户游览日志的数据(复制下面显示的表格后,运行下面的代码才会出现相同的结果): import pandas as pd ...
  • # -*- coding: utf-8 -*- """ Created on Thu Feb 20 22:14:22 2020 ...import pandas as pd import numpy as np import time dfrl['agent_code']=dfrl['AGENT_CODE'].apply(lambda x:str(x).zf...
  • 目录1 数据格式转换2 数据的排序2.1 单个表格列数据的排序需要用到函数:2.2 多排序问题:3 基本统计数据分析3.1 描述性统计3.2 列数据统计(最值/方差等)4数据透视操作和函数 1 数据格式转换 查看与转换表格某一列...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,710
精华内容 5,484
关键字:

pandas按照时间排序