精华内容
下载资源
问答
  • Pandas数据处理 如何按日期筛选、显示及统计数据

    转载自 http://www.mamicode.com/info-detail-1822406.html

    前言

    pandas有着强大的日期数据处理功能,本期我们来了解下pandas处理日期数据的一些基本功能,主要包括以下三个方面:

    • 按日期筛选数据
    • 按日期显示数据
    • 按日期统计数据

    运行环境为 windows系统,64位,python3.5。

    1 读取并整理数据

    • 首先引入pandas库
      import pandas as pd
      
    • 从csv文件中读取数据
    df = pd.read_csv(‘date.csv‘, header=None)
    print(df.head(2))
    
                0  1
    0  2013-10-24  3
    1  2013-10-25  4
    
    • 整理数据
    df.columns = [‘date‘,‘number‘]
    df[‘date‘] = pd.to_datetime(df[‘date‘]) #将数据类型转换为日期类型
    df = df.set_index(‘date‘) # 将date设置为index
    print(df.head(2))
    print(df.tail(2))
    print(df.shape)
    
                number
    date              
    2013-10-24       3
    2013-10-25       4
                number
    date              
    2017-02-14       6
    2017-02-22       6
    (425, 1)
    
    • df的行数一共是425行。

    查看Dataframe的数据类型

    print(type(df))
    print(df.index)
    print(type(df.index))
    
    <class ‘pandas.core.frame.DataFrame‘>
    DatetimeIndex([‘2013-10-24‘, ‘2013-10-25‘, ‘2013-10-29‘, ‘2013-10-30‘,
                   ‘2013-11-04‘, ‘2013-11-06‘, ‘2013-11-08‘, ‘2013-11-12‘,
                   ‘2013-11-14‘, ‘2013-11-25‘,
                   ...
                   ‘2017-01-03‘, ‘2017-01-07‘, ‘2017-01-14‘, ‘2017-01-17‘,
                   ‘2017-01-23‘, ‘2017-01-25‘, ‘2017-01-26‘, ‘2017-02-07‘,
                   ‘2017-02-14‘, ‘2017-02-22‘],
                  dtype=‘datetime64[ns]‘, name=‘date‘, length=425, freq=None)
    <class ‘pandas.tseries.index.DatetimeIndex‘>
    

    构造Series类型数据

    s = pd.Series(df[‘number‘], index=df.index)
    print(type(s))
    s.head(2)
    
    <class ‘pandas.core.series.Series‘>
    
    date
    2013-10-24    3
    2013-10-25    4
    Name: number, dtype: int64
    

    2 按日期筛选数据

    按年度获取数据

    print(‘---------获取2013年的数据-----------‘)
    print(df[‘2013‘].head(2)) # 获取2013年的数据
    print(df[‘2013‘].tail(2)) # 获取2013年的数据
    
    ---------获取2013年的数据-----------
                number
    date              
    2013-10-24       3
    2013-10-25       4
                number
    date              
    2013-12-27       2
    2013-12-30       2
    

    获取2016至2017年的数据

    print(‘---------获取2016至2017年的数据-----------‘)
    print(df[‘2016‘:‘2017‘].head(2))  #获取2016至2017年的数据
    print(df[‘2016‘:‘2017‘].tail(2))  #获取2016至2017年的数据
    
    ---------获取2016至2017年的数据-----------
                number
    date              
    2016-01-04       4
    2016-01-07       6
                number
    date              
    2017-02-14       6
    2017-02-22       6
    

    获取某月的数据

    print(‘---------获取某月的数据-----------‘)
    print(df[‘2013-11‘]) # 获取某月的数据
    
    ---------获取某月的数据-----------
                number
    date              
    2013-11-04       1
    2013-11-06       3
    2013-11-08       1
    2013-11-12       5
    2013-11-14       2
    2013-11-25       1
    2013-11-29       1
    

    获取具体某天的数据

    • 请注意dataframe类型的数据,获取具体某天的数据时,跟series是有些差异的,详细情况如下述代码所示:
    # 按日期筛选数据
    print(‘---------获取具体某天的数据-----------‘)
    # 获取具体某天的数据
    print(s[‘2013-11-06‘])
    
    # 获取具体某天的数据,用datafrme直接选取某天时会报错,而series的数据就没有问题
    # print(df[‘2013-11-06‘])
    
    #可以考虑用区间来获取某天的数据
    print(df[‘2013-11-06‘:‘2013-11-06‘])
    
    ---------获取具体某天的数据-----------
    3
                number
    date              
    2013-11-06       3
    
    • dataframe的truncate函数可以获取某个时期之前或之后的数据,或者某个时间区间的数据
    • 但一般建议直接用切片(slice),这样更为直观,方便
    # dataframe的truncate函数可以获取某个时期之前或之后的数据,或者某个时间区间的数据
    # 但一般建议直接用切片(slice),这样更为直观,方便
    print(‘---------获取某个时期之前或之后的数据-----------‘)
    print(‘--------after------------‘)
    print(df.truncate(after = ‘2013-11‘))
    print(‘--------before------------‘)
    print(df.truncate(before=‘2017-02‘))
    
    ---------获取某个时期之前或之后的数据-----------
    --------after------------
                number
    date              
    2013-10-24       3
    2013-10-25       4
    2013-10-29       2
    2013-10-30       1
    --------before------------
                number
    date              
    2017-02-07       8
    2017-02-14       6
    2017-02-22       6
    

    3 按日期显示数据

    3.1 to_period()方法

    • 请注意df.index的数据类型是DatetimeIndex;
    • df_peirod的数据类型是PeriodIndex

    按月显示,但不统计

    df_period = df.to_period(‘M‘) #按月显示,但不统计
    print(type(df_period))
    
    print(type(df_period.index))
    # 请注意df.index的数据类型是DatetimeIndex;
    # df_peirod的数据类型是PeriodIndex
    
    print(df_period.head())
    
    <class ‘pandas.core.frame.DataFrame‘>
    <class ‘pandas.tseries.period.PeriodIndex‘>
             number
    date           
    2013-10       3
    2013-10       4
    2013-10       2
    2013-10       1
    2013-11       1
    

    按季度显示,但不统计

    print(df.to_period(‘Q‘).head()) #按季度显示,但不统计
    
            number
    date          
    2013Q4       3
    2013Q4       4
    2013Q4       2
    2013Q4       1
    2013Q4       1
    

    按年度显示,但不统计

    print(df.to_period(‘A‘).head()) #按年度显示,但不统计
    
          number
    date        
    2013       3
    2013       4
    2013       2
    2013       1
    2013       1
    

    3.2 asfreq()方法

    按年度频率显示

    df_period.index.asfreq(‘A‘) # ‘A‘默认是‘A-DEC‘,其他如‘A-JAN‘
    
    PeriodIndex([‘2013‘, ‘2013‘, ‘2013‘, ‘2013‘, ‘2013‘, ‘2013‘, ‘2013‘, ‘2013‘,
                 ‘2013‘, ‘2013‘,
                 ...
                 ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘,
                 ‘2017‘, ‘2017‘],
                dtype=‘period[A-DEC]‘, name=‘date‘, length=425, freq=‘A-DEC‘)
    
    df_period.index.asfreq(‘A-JAN‘) # ‘A‘默认是‘A-DEC‘,其他如‘A-JAN‘
    
    PeriodIndex([‘2014‘, ‘2014‘, ‘2014‘, ‘2014‘, ‘2014‘, ‘2014‘, ‘2014‘, ‘2014‘,
                 ‘2014‘, ‘2014‘,
                 ...
                 ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2017‘, ‘2018‘,
                 ‘2018‘, ‘2018‘],
                dtype=‘period[A-JAN]‘, name=‘date‘, length=425, freq=‘A-JAN‘)
    
    • 按年度频率在不同情形下的显示,可参考下图所示:
      技术分享

    按季度频率显示

    df_period.index.asfreq(‘Q‘) # ‘Q‘默认是‘Q-DEC‘,其他如“Q-SEP”,“Q-FEB”
    
    PeriodIndex([‘2013Q4‘, ‘2013Q4‘, ‘2013Q4‘, ‘2013Q4‘, ‘2013Q4‘, ‘2013Q4‘,
                 ‘2013Q4‘, ‘2013Q4‘, ‘2013Q4‘, ‘2013Q4‘,
                 ...
                 ‘2017Q1‘, ‘2017Q1‘, ‘2017Q1‘, ‘2017Q1‘, ‘2017Q1‘, ‘2017Q1‘,
                 ‘2017Q1‘, ‘2017Q1‘, ‘2017Q1‘, ‘2017Q1‘],
                dtype=‘period[Q-DEC]‘, name=‘date‘, length=425, freq=‘Q-DEC‘)
    
    df_period.index.asfreq(‘Q-SEP‘) # 可以显示不同的季度财年,“Q-SEP”,“Q-FEB”
    # df_period.index = df_period.index.asfreq(‘Q-DEC‘) # 可以显示不同的季度财年,“Q-SEP”,“Q-FEB”
    # print(df_period.head())
    
    PeriodIndex([‘2014Q1‘, ‘2014Q1‘, ‘2014Q1‘, ‘2014Q1‘, ‘2014Q1‘, ‘2014Q1‘,
                 ‘2014Q1‘, ‘2014Q1‘, ‘2014Q1‘, ‘2014Q1‘,
                 ...
                 ‘2017Q2‘, ‘2017Q2‘, ‘2017Q2‘, ‘2017Q2‘, ‘2017Q2‘, ‘2017Q2‘,
                 ‘2017Q2‘, ‘2017Q2‘, ‘2017Q2‘, ‘2017Q2‘],
                dtype=‘period[Q-SEP]‘, name=‘date‘, length=425, freq=‘Q-SEP‘)
    
    • 按季度频率在不同情形下的显示,可参考下图所示:
      技术分享

    按月度频率显示

    df_period.index.asfreq(‘M‘) # 按月份显示
    
    PeriodIndex([‘2013-10‘, ‘2013-10‘, ‘2013-10‘, ‘2013-10‘, ‘2013-11‘, ‘2013-11‘,
                 ‘2013-11‘, ‘2013-11‘, ‘2013-11‘, ‘2013-11‘,
                 ...
                 ‘2017-01‘, ‘2017-01‘, ‘2017-01‘, ‘2017-01‘, ‘2017-01‘, ‘2017-01‘,
                 ‘2017-01‘, ‘2017-02‘, ‘2017-02‘, ‘2017-02‘],
                dtype=‘period[M]‘, name=‘date‘, length=425, freq=‘M‘)
    

    按工作日显示

    • method 1
    df_period.index.asfreq(‘B‘, how=‘start‘) # 按工作日期显示
    
    PeriodIndex([‘2013-10-01‘, ‘2013-10-01‘, ‘2013-10-01‘, ‘2013-10-01‘,
                 ‘2013-11-01‘, ‘2013-11-01‘, ‘2013-11-01‘, ‘2013-11-01‘,
                 ‘2013-11-01‘, ‘2013-11-01‘,
                 ...
                 ‘2017-01-02‘, ‘2017-01-02‘, ‘2017-01-02‘, ‘2017-01-02‘,
                 ‘2017-01-02‘, ‘2017-01-02‘, ‘2017-01-02‘, ‘2017-02-01‘,
                 ‘2017-02-01‘, ‘2017-02-01‘],
                dtype=‘period[B]‘, name=‘date‘, length=425, freq=‘B‘)
    
    • method 2
    df_period.index.asfreq(‘B‘, how=‘end‘) # 按工作日期显示
    
    PeriodIndex([‘2013-10-31‘, ‘2013-10-31‘, ‘2013-10-31‘, ‘2013-10-31‘,
                 ‘2013-11-29‘, ‘2013-11-29‘, ‘2013-11-29‘, ‘2013-11-29‘,
                 ‘2013-11-29‘, ‘2013-11-29‘,
                 ...
                 ‘2017-01-31‘, ‘2017-01-31‘, ‘2017-01-31‘, ‘2017-01-31‘,
                 ‘2017-01-31‘, ‘2017-01-31‘, ‘2017-01-31‘, ‘2017-02-28‘,
                 ‘2017-02-28‘, ‘2017-02-28‘],
                dtype=‘period[B]‘, name=‘date‘, length=425, freq=‘B‘)
    

    4 按日期统计数据

    4.1按日期统计数据

    按周统计数据

    print(df.resample(‘w‘).sum().head())
    # “w”,week
    
                number
    date              
    2013-10-27     7.0
    2013-11-03     3.0
    2013-11-10     5.0
    2013-11-17     7.0
    2013-11-24     NaN
    

    按月统计数据

    print(df.resample(‘M‘).sum().head())
    # "MS"是每个月第一天为开始日期, "M"是每个月最后一天
    
                number
    date              
    2013-10-31      10
    2013-11-30      14
    2013-12-31      27
    2014-01-31      16
    2014-02-28       4
    

    按季度统计数据

    print(df.resample(‘Q‘).sum().head())
    # "QS"是每个季度第一天为开始日期, "Q"是每个季度最后一天
    
                number
    date              
    2013-12-31      51
    2014-03-31      73
    2014-06-30      96
    2014-09-30     136
    2014-12-31     148
    

    按年统计数据

    
    print(df.resample(‘AS‘).sum())
    # "AS"是每年第一天为开始日期, "A是每年最后一天
    
                number
    date              
    2013-01-01      51
    2014-01-01     453
    2015-01-01     743
    2016-01-01    1552
    2017-01-01      92
    
    • 关于日期的类型,按参考下图所示来选择合适的分期频率:
      技术分享

    4.2 按日期统计后,按年或季度或月份显示

    按年统计并显示

    print(df.resample(‘AS‘).sum().to_period(‘A‘))
    # 按年统计并显示
    
          number
    date        
    2013      51
    2014     453
    2015     743
    2016    1552
    2017      92
    

    按季度统计并显示

    print(df.resample(‘Q‘).sum().to_period(‘Q‘).head())
    # 按季度统计并显示
    
            number
    date          
    2013Q4      51
    2014Q1      73
    2014Q2      96
    2014Q3     136
    2014Q4     148
    

    按月度统计并显示

    print(df.resample(‘M‘).sum().to_period(‘M‘).head())
    # 按月度统计并显示
    
             number
    date           
    2013-10      10
    2013-11      14
    2013-12      27
    2014-01      16
    2014-02       4
    

    更多精彩内容请关注微信公众号:

    “Python数据之道”

    展开全文
  • sql日期数据有datetime/smalldatetime两种,我选用smalldatetime日期类型来存储学生的出生日期,在网页上显示出生日期的时候,会把时间也显示出来。可我只想要日期!  在网上找了相关内容,现整理如下(有关...
     
     
    

    sql日期型数据有datetime/smalldatetime两种,我选用smalldatetime日期类型来存储学生的出生日期,在网页上显示出生日期的时候,会把时间也显示出来。可我只想要日期!

         在网上找了相关内容,现整理如下(有关日期型数据及其相关知识可能很繁杂,我也只知道这些了!):

    Sql日期格式

       格式类型:    000    输出日期格式:    Sep    14    200   
       格式类型:    001    输出日期格式:    09/14/01     
       格式类型:    002    输出日期格式:    01.09.14     
       格式类型:    003    输出日期格式:    14/09/01     
       格式类型:    004    输出日期格式:    14.09.01     
       格式类型:    005    输出日期格式:    14-09-01     
       格式类型:    006    输出日期格式:    14    Sep    01     
       格式类型:    007    输出日期格式:    Sep    14,    01   
       格式类型:    008    输出日期格式:    17:06:08     
       格式类型:    009    输出日期格式:    Sep    14    200   
       格式类型:    010    输出日期格式:    09-14-01     
       格式类型:    011    输出日期格式:    01/09/14     
       格式类型:    012    输出日期格式:    010914     
       格式类型:    013    输出日期格式:    14    Sep    200   
       格式类型:    014    输出日期格式:    17:06:08:7   
       格式类型:    015    输出日期格式:    17:06:08:7   
       格式类型:    016    输出日期格式:    17:06:08:7   
       格式类型:    017    输出日期格式:    17:06:08:7   
       格式类型:    018    输出日期格式:    17:06:08:7   
       格式类型:    019    输出日期格式:    17:06:08:7   
       格式类型:    020    输出日期格式:    2001-09-14   
       格式类型:    021    输出日期格式:    2001-09-14   
       格式类型:    022    输出日期格式:    09/14/01     
       格式类型:    023    输出日期格式:    2001-09-14   
       格式类型:    024    输出日期格式:    17:06:08     
    select    convert(char(10),getdate(),111)   ~~~    这里就是格式类型!

    select 学号,姓名,性别,convert(char(10),出生日期,020) as 出生日期,班级 from 学生表 where 班级=@bj

    其他的:

    SQL Server 中截取日期的日期部分:
    print convert(varchar(10),getdate(),120)

    SQL Server 中截取日期的时间部分:
    print convert(varchar(8),getdate(),108)


    SQL Server中截取日期的"日期+时间"部分:

    select CONVERT(varchar(16), getDate(),120

    展开全文
  • 一、下午在搞MVCEXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串。  整数1335258540000实际上是一

    参考文章:(http://www.cnblogs.com/milo-xie/archive/2012/04/24/2468660.html)

    一、下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串。

      整数1335258540000实际上是一个1970 年 1 月 1 日 00:00:00至这个DateTime中间间隔的毫秒数。通过javascript用eval函数可以把这个日期字符串转换为一个带有时区的Date对象,如下

    用var date = eval('new ' + eval('/Date(1335258540000)/').source) 这样即可得到一个JS对象

    通过alert(date)查看比较清楚。

    Tue Apr 24 17:09:00 UTC+0800 2012 

    上面是C# JSON序列化日期自动得到的字符串,也可以通过C#写一个函数来获取这个数字,例如

    ?
    1
    2
    3
    4
    5
    6
    7
    public  long  MilliTimeStamp(DateTime TheDate)
             {
                 DateTime d1 = new  DateTime(1970, 1, 1);
                 DateTime d2 = TheDate.ToUniversalTime();
                 TimeSpan ts = new  TimeSpan(d2.Ticks - d1.Ticks);
                 return  ( long )ts.TotalMilliseconds;
             }

     通过上面的函数跟利用JSON序列化获取到的字符串中的整数是一样的。

    但是,在从客户端返回服务器端的时候,日期却遇到了问题,如何将javascript的Date对象传回服务器端呢?

    先通过javascript Date中的getTime()来获取到这个整数,然后服务器端对这个整数进行解析,‘构造’成一个C#的DateTime对象。思路大概是这样的,不过在逆向回去的时候却遇到了点麻烦。

    public DateTime ConvertTime(long milliTime)
            {
                long timeTricks = new DateTime(1970, 1, 1).Ticks + milliTime * 10000 ;
                return new DateTime(timeTricks);
            }

    通过ConvertTime得到的结果发现时间少了8个小时,这刚好是服务器的时区,东八区时间,也就是说还要加上8小时的纳秒,因为C#的时间戳单位是一千万分之一秒,一个小时3600秒,即8*3600*10000000

    所以修改了ConvertTime函数,正确的如下:

    1 public DateTime ConvertTime(long milliTime)
    2         {
    3             long timeTricks = new DateTime(1970, 1, 1).Ticks + milliTime * 10000 + TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours * 3600 * (long)10000000;
    4             return new DateTime(timeTricks);
    5         }

    部分源码如下:

    字段(Fields):

                                        <ext:RecordField Name="DatedDate" DateFormat="Y/m/d"/>
                                        <ext:RecordField Name="ExpiringDate" DateFormat="Y/m/d"/>

    列模型(ColumnModel):

                            <ext:Column ColumnID="DatedDate" Header="起息日" DataIndex="DatedDate">
                                <Renderer Handler="return Ext.util.Format.date(eval('new ' + eval(value).source),'Y年m月d日')" />
                            </ext:Column>
                            <ext:Column ColumnID="ExpiringDate" Header="到期日" DataIndex="ExpiringDate" Hidden="false">
                                <Renderer Handler="return Ext.util.Format.date(eval('new ' + eval(value).source),'Y年m月d日')" />
                            </ext:Column>


    异步加载:

                        <ext:Store ID="storeResult" runat="server" RemoteSort="true" AutoLoad="false">
                            <Proxy>
                                <ext:HttpProxy Json="true" Method="POST" Url="../metadata/WebService.asmx/QueryPagingGeneral">
                                </ext:HttpProxy>
                            </Proxy>
                            <AutoLoadParams>
                                <ext:Parameter Name="start" Value="={0}" />
                                <ext:Parameter Name="limit" Value="={30}" />
                            </AutoLoadParams>
                            <BaseParams>
                                <ext:Parameter Name="filter" Value="" Mode="Value" />
                            </BaseParams>
                            <SortInfo Field="ID" Direction="ASC" />
                            <Reader>
                                <ext:JsonReader IDProperty="ID" Root="d.Data" TotalProperty="d.TotalRecords">
                                    <Fields>

                                     ...

                                   </Fields>

    异步调用方法(webservice):[System.Web.Script.Services.ScriptService]必须要加.

        [WebMethod(EnableSession = true)]
        public Paging<ProductInfo> QueryPagingGeneral(int start, int limit, string sort, string dir, string filter)
        {
            ImportDataService _service = new ImportDataService();
            Hashtable ht = Session["QueryGeneral"] as Hashtable;
            if (ht == null)
            {
                ht = new Hashtable();
            }
            ht["PageStart"] = start;
            ht["PageEnd"] = start + limit;
            int total = _service.GetProductCountForRemote(ht);
            IList<ProductInfo> models = _service.GetProductListForRemote(ht);
            foreach (ProductInfo item in models)
            {
                item.ProductName = "<a href='ProductDetails.aspx?pagename=general&PID=" + item.ID + "&pageindex=" + (start/limit+1) + "'>" + item.ProductName + "</a>";
            }
            return new Paging<ProductInfo>(models, total);
        }

    二、0NaN年NaN月NaN,这一问题在ie8中出现,其他版本没有出现,其他浏览器也没有出现,这是ie浏览器版本之间的兼容性问题。解决方法:

    添加类型属性Type=“Date”

    代码如下:

    <ext:GridPanel ID="GridPanel1" runat="server" Title="报告列表</font>" Margins="0 0 5 5"
                    Icon="UserSuit" Region="Center" Frame="true" StripeRows="true">
                    <Store>
                        <ext:Store ID="storeResult" runat="server">
                            <Reader>
                                <ext:JsonReader IDProperty="ID">
                                    <Fields>
                                        <ext:RecordField Name="ID" />
                                        <ext:RecordField Name="Title" />
                                        <ext:RecordField Name="Author" />
                                        <ext:RecordField Name="PublishTime" Type="Date" />
                                        <ext:RecordField Name="ReportType" />
                                        <ext:RecordField Name="DownloadCount" />
                                        <ext:RecordField Name="Path" />
                                    </Fields>
                                </ext:JsonReader>
                            </Reader>
                            <AutoLoadParams>
                                <ext:Parameter Name="start" Value="0" Mode="Raw" />
                                <ext:Parameter Name="limit" Value="30" Mode="Raw" />
                            </AutoLoadParams>
                        </ext:Store>
                    </Store>
                    <ColumnModel ID="ColumnModel1" runat="server">
                        <Columns>
                            <ext:RowNumbererColumn Width="40px" Header="序号" Align="Center" />
                            <ext:Column ColumnID="Title" Header="标题" DataIndex="Title" Align="Center" Width="200px" />
                            <ext:Column ColumnID="Author" Header="撰写人" DataIndex="Author" Align="Center"/>
                            <ext:Column ColumnID="ReportType" Header="类型" DataIndex="ReportType" Align="Center" />
                            <ext:Column ColumnID="PublishTime" Header="发布日期" DataIndex="PublishTime" Align="Center" >
                            <Renderer Fn="Ext.util.Format.dateRenderer('Y年m月d日')" />
                            </ext:Column>
                            <ext:Column ColumnID="DownloadCount" Header="下载次数" DataIndex="DownloadCount" Align="Center" />
                            <ext:Column ColumnID="Path" Header="下载" DataIndex="Path" Align="Center" />
                        </Columns>
                    </ColumnModel>
                    <SelectionModel>
                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server">
                        </ext:RowSelectionModel>
                    </SelectionModel>
                    <View>
                        <ext:GridView ID="GridView1" runat="server" ForceFit="true" MarkDirty="false" />
                    </View>
                    <BottomBar>
                        <ext:PagingToolbar ID="PagingToolbar1" runat="server" PageSize="30" HideRefresh="true" />
                    </BottomBar>


                    <LoadMask ShowMask="true" />
                </ext:GridPanel>

    三、如果<ext:RecordField Name="PublishTime" Type="String"/>的数据类型是String,而不是Date,同样会产生上述问题,尤其是日期格式为xxxx-xx-xx时,

    要将“-”分隔符转换为“/”

                            <ext:Column ColumnID="PublishTime" Header="发布日期" DataIndex="PublishTime" Align="Center" >
                                <Renderer Handler="if(value)return Ext.util.Format.date(new Date(value.replace('-','/')),'Y年m月d日');else return value;" /> <%--对空字符串过滤-->
                            </ext:Column>

    日期转换参考:

    【1】js毫秒时间转换成日期时间

    var oldTime = (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒数  

    //不是上面格式的时间需要转换

       //starttime ='2012-12-25 20:17:24';
        starttime = starttime.replace(new RegExp("-","gm"),"/");
        var starttimeHaoMiao = (new Date(starttime)).getTime(); //得到毫秒数

    【2】毫秒数转化为时间

    var oldTime = (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒数  
    var newTime = new Date(oldTime); //就得到普通的时间了 

    参考:http://blog.csdn.net/qq435792305/article/details/7973751

     

    到此问题解决。

    展开全文
  • 1、获取某月数据 data_train = pd.read_csv('data/train.csv') # 将数据类型转换为日期类型 data_train['date'] = pd.to_datetime(data_train['date']) # 将date设置为index df = data_train.set_index('...

    首先,表格的数据格式如下:

    这里写图片描述

    1、获取某年某月数据

    data_train = pd.read_csv('data/train.csv')
    
    # 将数据类型转换为日期类型
    data_train['date'] = pd.to_datetime(data_train['date'])
    
    # 将date设置为index
    df = data_train.set_index('date')
    
    # 获取某年的数据
    print(df['2010'].head())
    # 获取某月的数据
    print(df['2013-11'].head())

    输出结果:

               id      questions  answers
    date                              
    2010-10-01   1        742     1561
    2010-10-02   2        400      783
    2010-10-03   3        388      771
    2010-10-04   4        762     1474
    2010-10-05   5        821     1639
               id       questions  answers
    date                                
    2013-11-01  1128       3401     6858
    2013-11-02  1129       2626     5467
    2013-11-03  1130       2703     5557
    2013-11-04  1131       3602     6941
    2013-11-05  1132       3741     7312

    2、获取某个时期之前或之后的数据

    # 获取某个时期之前或之后的数据
    
    # 获取2014年以后的数据
    print(df.truncate(before='2014').head())
    # 获取2013-11之前的数据
    print(df.truncate(after='2013-11').head())
    # 获取2016-02年以后的数据
    print(df.truncate(before='2016-02').head())
    # 获取2016-02-2年以后的数据
    print(df.truncate(before='2016-02-2').head())

    输出结果:

                 id  questions  answers
    date                                
    2014-01-01  1189       2586     5576
    2014-01-02  1190       3541     7175
    2014-01-03  1191       3655     7395
    2014-01-04  1192       2947     6099
    2014-01-05  1193       2847     5935
                 id  questions  answers
    date                              
    2010-10-01   1        742     1561
    2010-10-02   2        400      783
    2010-10-03   3        388      771
    2010-10-04   4        762     1474
    2010-10-05   5        821     1639
                 id  questions  answers
    date                                
    2016-02-01  1950       5434    10398
    2016-02-02  1951       5650    10795
    2016-02-03  1952       5744    10879
    2016-02-04  1953       5666    10886
    2016-02-05  1954       5371    10508
                 id  questions  answers
    date                                
    2016-02-02  1951       5650    10795
    2016-02-03  1952       5744    10879
    2016-02-04  1953       5666    10886
    2016-02-05  1954       5371    10508
    2016-02-06  1955       4296     8800

    3、按某个指标显示,但不统计

    # 按月显示,但不统计
    df_period_M = df.to_period('M').head()
    print(df_period_M)
    # 按季度显示,但不统计
    df_period_Q = df.to_period('Q').head()
    print(df_period_Q)
    # 按年度显示,但不统计
    df_period_A = df.to_period('A').head()
    print(df_period_A)

    输出结果:

             id  questions  answers
    date                           
    2010-10   1        742     1561
    2010-10   2        400      783
    2010-10   3        388      771
    2010-10   4        762     1474
    2010-10   5        821     1639
             id  questions  answers
    date                          
    2010Q4   1        742     1561
    2010Q4   2        400      783
    2010Q4   3        388      771
    2010Q4   4        762     1474
    2010Q4   5        821     1639
             id  questions  answers
    date                        
    2010   1        742     1561
    2010   2        400      783
    2010   3        388      771
    2010   4        762     1474
    2010   5        821     1639

    4、按某个指标显示,并且统计

    # 按年统计并显示
    print(df.resample('AS').sum().to_period('A'))
    # 按季度统计并显示
    print(df.resample('Q').sum().to_period('Q').head())
    # 按月度统计并显示
    print(df.resample('M').sum().to_period('M').head())
    # 按月度统计并显示
    print(df.resample('W').sum().to_period('W').head())

    输出结果:

              id  questions  answers
    date                            
    2010    4278      74363   153006
    2011  100375     535290  1091651
    2012  234423     862831  1718434
    2013  367190    1179155  2320421
    2014  500415    1487677  2876611
    2015  633640    1734023  3368264
    2016  698810    1808649  3476335
              id  questions  answers
    date                             
    2010Q4   4278      74363   153006
    2011Q1  12375     105858   217767
    2011Q2  20748     127873   260836
    2011Q3  29394     144424   293853
    2011Q4  37858     157135   319195
              id  questions  answers
    date                             
    2010-10   496      22218    44882
    2010-11  1395      25418    52841
    2010-12  2387      26727    55283
    2011-01  3348      31502    65477
    2011-02  3850      33240    67627
               id  questions  answers
    date                                          
    2010-09-27/2010-10-03    6       1530     3115
    2010-10-04/2010-10-10   49       4869     9636
    2010-10-11/2010-10-17   98       5079    10344
    2010-10-18/2010-10-24  147       5361    10847
    2010-10-25/2010-10-31  196       5379    10940
    

    附录:日期类型截图

    这里写图片描述

    展开全文
  • 默认显示最新或日数据 业务中需要使用到 连续跨度时间筛选 并自动更新出最新日期 创建时间筛选器-选 日期范围 设置为 特殊值-所有日期项,可实现 默认显示最新或日数据 创建计算字段-开关 创建开关字段拖入...
  • KingCounty房价预测 参考文章:https://www.jianshu.com/p/b91e3ae940ec https://blog.csdn.net/sinat_35512245/article/details/79791190
  • mysql 根据日期进行查询数据,没有数据也要显示

    千次阅读 热门讨论 2019-06-06 08:30:38
    写这篇博客主要是记录自己在对订单进行按日期查询时使用的一种查询的方法,这里的orders是订单表,你也可以改成别的什么表对于最终数据不会造成影响,除非你那个表的数据只有几条那样就会出现查不到日期的情况 ...
  • python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。
  • 在利用datagrid展示后台数据库数据的过程中,会发现,日期数据无法正常显示,而是显示一连串的数字。在controller层debug调试时显示数据为Date型数据,应该是在页面无法读取,导致页面显示出问题,而且显示的数据为...
  • 选中C列,右键--“设置单元格格式”,选择数据格式为自定义,类型格式为yyyy/m/d h:mm:ss 2.接着在单元格C2中输入函数=IF(B2="","",IF(C2="",NOW(),C2)),很简单就两个多条件IF与NOW()函数,具体的B2与C2根据实际...
  • echarts图表显示日历带日期数据统计

    千次阅读 2019-04-04 09:33:49
    echarts图表显示日历带日期数据统计 let lastday=30; if(month==2){ lastday=28 }else if(['01','03','05','07','08','10','12'].indexOf(month)>=0){ lastday=31 } var date = new Date(year+'-'+month+'-01...
  • 面对这样的问题例如日期是这样 我们要统计成如下图的样式 ...我们建立好数据透视表后,单击数据透视表日期的部分,右击,点击组合项: ...选择相要组合的,例如年和月,这样就可以完成上面的要求了
  • 最近的一个项目使用到easyui 中datetimebox 控件,但是只要显示月份数据,不需要显示具体的日期数据 这个功能需要代码实现 $(function () { $('#db').datebox({ onShowPanel: function () {//显示日趋...
  • SqlServer 按日期查表,没有数据日期显示为0 有数据表A,包含以下数据 日期 数量 ----------------------------- 2015-07-17 1 2015-07-22 1 2015-07-23 2 2015-07-25 1 需要查询效果如下: 日期 数量 ----------...
  • /*定义一个日期类:包括、日三个成员变量,显示日期的方法 * 提供构造方法:定义无参构造方法,有参构造方法*/代码如下:public class Demo { public static void main(String[] args) { Date date1=new ...
  • 之间缺失的时间也显示出来,数据间隔30分钟,数据库里面没有中间这段缺失数据,但是前端页面要做显示,该怎么做呢?求大神赐教! 前端部分代码: $.post(url, {bianhao:bianhao,datatype:datatype,...
  • //获取当前日期前一天 function getCurrentMonthFirst(){ var date=new Date(); date.setDate(date.getDate()-1); return date; } //获取当月第一天 function getCurrent(){ var date=new Date();
  • MySQL数据类型--日期和时间类型

    万次阅读 多人点赞 2016-03-17 17:27:02
    MySQL中有多种表示日期和时间的数据类型。 其中,year类型表示时间,date类型表示日期,time类型表示时间,datetimetimestamp表示日期和时间。 具体的日期和时间类型如下: 关于上图的解释: 1,每种日期和...
  • Extjs里表格grid显示日期类型数据

    万次阅读 2013-09-22 20:42:11
    尽管返回的JSON里都没有数字字符串,但在EXT里我们同样可以从后台获得日期类型的数据,然后交给表格初始化。 我们在定义store的render里增加一行配置,除了设置name以外,还设置了typedataFormat两个属性。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,473
精华内容 172,989
关键字:

日期数据只显示年和月