精华内容
下载资源
问答
  • import pandas as pd import os os.chdir(r'C:\Users\Hans\Desktop\data_analysis') df = pd.read_excel('pandas_multiindex.xls') ... 日期 收盘 开盘 高 低 交易量 涨跌幅 公司 0
    import pandas as pd 
    import os 
    os.chdir(r'C:\Users\Hans\Desktop\data_analysis')
    df = pd.read_excel('pandas_multiindex.xls')
    df.head()
    
    日期收盘开盘交易量涨跌幅公司
    02020年5月27日201.18202.64202.64196.7723.61M-0.0027BABA
    12020年5月26日201.72205.96206.69201.1628.68M0.0101BABA
    22020年5月22日199.70203.23204.88198.9951.98M-0.0587BABA
    32020年5月21日212.16210.91214.51209.5429.85M-0.0214BABA
    42020年5月20日216.79220.12221.10210.7838.32M-0.0019BABA
    #(1)单列排序
    df.sort_values(by = '涨跌幅',ascending=False).head()
    
    日期收盘开盘交易量涨跌幅公司
    272020年5月18日55.5351.8855.6051.8828.51M0.0920JD
    62020年5月18日215.28212.30215.47210.5123.65M0.0570BABA
    222020年5月26日52.6052.2554.4652.2521.41M0.0541JD
    552020年5月11日15.6615.1815.8415.149.33M0.0524JSR
    562020年5月8日14.8814.2015.1814.107.72M0.0523JSR
    #(2)多列排序
    df.sort_values(by = ['高','涨跌幅'],ascending=False).head()#by=一个列表,默认是升序排列ascending = True
    
    日期收盘开盘交易量涨跌幅公司
    42020年5月20日216.79220.12221.10210.7838.32M-0.0019BABA
    52020年5月19日217.20217.00220.57215.3121.44M0.0089BABA
    62020年5月18日215.28212.30215.47210.5123.65M0.0570BABA
    32020年5月21日212.16210.91214.51209.5429.85M-0.0214BABA
    102020年5月12日200.31206.95208.05200.0217.83M-0.0248BABA
    df.sort_values(by = ['高','涨跌幅'],ascending=[True,False]).head()#即分别按照“高”升序,"涨跌幅"降序排列
    
    日期收盘开盘交易量涨跌幅公司
    602020年5月4日13.3013.6813.6813.123.93M-0.0390JSR
    592020年5月5日13.7013.5413.8413.482.62M0.0301JSR
    622020年4月28日13.7813.3013.8612.926.49M0.0424JSR
    612020年4月29日13.8413.7013.9213.564.06M0.0044JSR
    582020年5月6日13.9413.8014.1613.707.29M0.0175JSR
    
    
    展开全文
  • pandas 排序

    2018-05-23 19:52:20
    排序 sort_index-对行或列索引进行排序 import pandas as pd from pandas import DataFrame, Series obj= Series (range( 6 ),index=[ 'F' , 'A' , 'B' , 'D' , 'E' , 'C' ]) obj 结果: F 0 A 1 B ...

    参考
    1. http://blog.csdn.net/shingle_/article/details/71480334

    排序

    sort_index-对行或列索引进行排序

    import pandas as pd
    from pandas import DataFrame,Series
    obj=Series(range(6),index=['F','A','B','D','E','C'])
    obj
    
    结果:
    F    0
    A    1
    B    2
    D    3
    E    4
    C    5
    
    #根据索引排序
    obj.sort_index()
    obj
    结果:
    A    1
    B    2
    C    5
    D    3
    E    4
    F    0

    对于二维DataFrame:

    import numpy as np
    frame = DataFrame(np.arange(8).reshape((2,4)), index=['B','A'],columns=['b','c','a','e'])
    frame
        b   c   a   e
    B   0   1   2   3
    A   4   5   6   7
    frame.sort_index()
    结果:
        b   c   a   e
    A   4   5   6   7
    B   0   1   2   3
    frame.sort_index(axis=1)
    【out】:
        a   b   c   e
    B   2   0   1   3
    A   6   4   5   7
    axis DataFrame的行用0,列用1
    frame.sort_index(axis=1, ascending=False)
    [out]:
        e   c   b   a
    B   3   1   0   2
    A   7   5   4   6

    sort_values-按值进行排序

    obj = Series([4, np.nan, 6, np.nan, -2, 2])
    obj
    [out]:
    0    4.0
    1    NaN
    2    6.0
    3    NaN
    4   -2.0
    5    2.0
    
    排序:
    obj.sort_values()
    4   -2.0
    5    2.0
    0    4.0
    2    6.0
    1    NaN
    3    NaN

    在DataFrame上,根据一个或多个列中的值进行排序。将一个或多个列的名字传递给by选项即可达到该目的:

    frame.sort_values(by='a')
        b   c   a   e
    B   0   1   2   3
    A   4   5   6   7
    展开全文
  • 排序 参数 DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’) 参数说明 axis:如果axis=0,那么by=“列名”;如果axis=1,那么by=“行号”; ascending...

    排序

    参数

    DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)

    参数说明

    axis:如果axis=0,那么by=“列名”;如果axis=1,那么by=“行号”;

    ascending:True则升序,可以是[True,False],即第一字段升序,第二个降序

    inplace=True:不创建新的对象,直接对原始对象进行修改;

    inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。

    例1:按语文分数降序排列

    import pandas as pd
    path = 'C:/Users/Administrator/Desktop/playground2/排序.xlsx'
    data = pd.read_excel(path,index_col='序号')
    data.sort_values(by = '语文',inplace=True,ascending=False)  #按照语文排序,不创建新表 降序排列
    print(data)
    
         姓名  语文  数学  英语
    序号                 
    4    张伊  69  44  58
    1   卢海军  64  49  49
    2   丁智敏  61  61  60
    3   李平平  58  49  33
    6    王松  47  44  62
    5    王刚  37  63  42
    

    例2:按语文分数排序降序,数学升序,英语降序

    data.sort_values(by = ['语文','数学','英语'],inplace=True,ascending=[False,True,False])
    

    例3:按索引进行排序

    data = pd.read_excel(path,index_col='序号')
    data.sort_index(inplace=True) 
    

    排序进阶篇

     import pandas as pd
    路径 = 'c:/pandas/排序进阶.xlsx'
    数据 = pd.read_excel(路径)
    数据.sort_values(by='a',inplace=True,ascending=False)
    print(数据)
    

    在这里插入图片描述

    import pandas as pd
    路径 = 'c:/pandas/排序进阶.xlsx'
    数据 = pd.read_excel(路径)
    数据.sort_values(by=1,inplace=True,ascending=False,axis=1)
    print(数据)
    

    在这里插入图片描述

    查询数据 loc

    单条件查询

    语法:loc[行标签,列标签]

    import pandas as pd
    path = 'C:/Users/Administrator/Desktop/playground2/筛选.xlsx'
    data = pd.read_excel(path,index_col='出生日期')
    print(data.loc['1983-10-27','语文'])
    
    出生日期
    1983-10-27    61
    Name: 语文, dtype: int64
    

    多条件查询

    print(data.loc['1983-10-27',['语文','数学','英语']])
    

    使用数据区间范围进行查询

    print(data.loc['1983-10-27':'1990-12-31',['语文','数学','英语']])
    

    使用条件表达式进行查询

    import pandas as pd
    path = 'C:/Users/Administrator/Desktop/playground2/筛选.xlsx'
    data = pd.read_excel(path,index_col='出生日期')
    print(data.loc[(data['语文']>60) & (data['英语']<60),:])  #对于行有条件筛选 列全部显示
    
                序号   姓名 性别  语文  数学  英语   总分               地址
    出生日期                                                    
    1983-01-05   1  卢海军  男  64  49  49  162     上海市某某区某某小区A座
    1987-02-06   4   张伊  女  69  44  58  171  河南省信阳市某某区某某小区C座
    

    在这里插入图片描述

    loc实现条件判断

    import pandas as pd
    path = 'C:/Users/Administrator/Desktop/playground2/条件判断.xlsx'
    data = pd.read_excel(path,index_col='序号')
    data.loc[data['性别']=='男','称呼']='先生'  #如果行满足性别为男 则增加称呼这一列 #==是条件判断,=是赋值
    data.loc[data['性别']=='女','称呼']='女士'
    print(data)
    
        姓名 性别  语文  数学  英语  称呼
    序号                       
    1   张三  男  89  60  88  先生
    2   李四  女  60  71  98  女士
    3   王五  男  73  84  68  先生
    4   小孙  男  85  96  96  先生
    5   小刘  女  70  63  97  女士
    6   小赵  女  63  63  91  女士
    
    展开全文
  • pandas.dataframe 排序

    2018-08-17 08:54:21
    对dataframe所有的行排序, PS:不是指定行排序........
  • 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知识点-排序操作

    2021-03-15 22:34:37
    Pandas知识点-排序操作
  • 2.将文件中的数据按照CommitTime排序;3.将排好序的数据每两个月作为训练数据,隔两个月作为测试数据,生成若干个文件,分别命名为:data_i_fit.csv,data_i_est.csv.比如第1、2月作为训练数据,5、6月作为测试数据。 ...
  • date_df["rank_num"] = date_df.groupby("issuer_id").report_date.agg("rank", **{"ascending": 1, "method": "min"}) File "D:\python_virtualenv\es_env\lib\site-packages\pandas\core\groupby\groupby.py",...
  • pandas用法总结

    万次阅读 多人点赞 2018-06-07 10:49:03
    1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2、导入CSV或者xlsx文件: df = pd.DataFrame(pd.read_csv(‘name.csv’,header=1)) df = pd....
  • pandas分组后排序问题

    千次阅读 2019-08-10 01:01:06
    先进行整体的sort_values,再进行grouby https://blog.csdn.net/guofei_fly/article/details/93844612
  • 下面小编就为大家分享一篇Pandas 对Dataframe结构排序的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • PandasPandas的时间与日期

    千次阅读 2018-09-18 11:57:53
    从多个DataFrame列组装日期时间 无效数据 纪元时间戳 从时间戳到纪元 使用origin参数 生成时间戳范围 自定义频率范围 时间戳限制 索引 部分字符串索引 切片与精确匹配 精确索引 截断和花式索引 时间/...
  • pandas按照多列排序-ascending

    千次阅读 2021-01-22 10:43:46
    import pandas as pd #读取文件 df = pd.read_csv('./TianQi.csv') #字符串替换和类型转换 df['最高温度'] = df['最高温度'].str.replace('℃','').astype('int32') df.loc[:,'最低温度'] = df['最低温度'].str....
  • 本系列主要是pandas中常用api的练习,利用真实的数据帮助我们更好的理解和掌握pandas的使用。
  • 本篇文章将介绍如果通过Pandas的这两个函数完成Excel中的筛选和排序操作。 首选导入需要使用的Pandas库和numpy库,读取并创建数据表,将数据表命名为lc。 import pandas as pd import numpy as np lc=pd.DataFrame...
  • pandas通过索引进行排序

    万次阅读 多人点赞 2016-11-17 18:13:48
    import pandas as pd df = pd.DataFrame([1, 2, 3, 4, 5], index=[10, 52, 24, 158, 112], columns=['S']) df.sort_index(inplace=True) print df
  • Pandas排序sort_index/sort_values

    千次阅读 2018-09-16 14:36:56
    排序   按照某一列的大小进行排序。Py3目前提供两个函数。 1.1 sort_index   这个函数似乎不建议使用了,推荐使用sort_values详情参看:官方文档。 '''将'Date'设置为行索引并按时间排序:set_index()/...
  • Pandas处理日期数据的常见操作集锦 数据读取及整理 获取某个日期之前/后或时间区间的数据 python 获取当前时间及前一天时间 pandas日期时间间隔运算选取指定时间范围内/外的数据 利用pandas计算DataFrame两列...
  • Pandas

    2018-12-27 20:48:59
    Pandas的数据结构 学习目标 目标 了解Numpy与Pandas的不同 说明Pandas的Series与Dataframe两种结构的区别 了解Pandas的MultiIndex与panel结构 应用 股票涨跌幅数据的修改 1、Pandas介绍 pandas 2008年WesMcKinney...
  • Py之pandas:对dataframe型数据排序相关的问题总结之按照多个字段的多个条件进行排序(先打乱再排序) 目录 对dataframe型数据排序相关的问题总结之按照多个字段的多个条件进行排序(先打乱再排序) 输出结果...
  • Pandas按照某列值排序

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,559
精华内容 2,223
关键字:

pandas日期排序