【问题标题】:Display variable data as month and year将变量数据显示为月份和年份
【发布时间】:2018-12-03 12:53:57
【问题描述】:

我有以下代码:

import pandas as pd
import datetime
df=pd.read_csv("https://www.dropbox.com/s/08kuxi50d0xqnfc/demo.csv?dl=1")
df["date"]=pd.to_datetime(df["date"])
df['date'] = df.date.apply(lambda x: datetime.datetime.strftime(x,'%b')) # SHOWS date as MONTH
pvt_enroll=df.pivot_table(index='site', columns="date", values = 'baseline', aggfunc = {'baseline' : 'count'}, fill_value=0, margins=True) # Pivot_Table with enrollment by SITE by MONTH
pvt_enroll.to_csv("pivot_test.csv")
table_enroll_site_month = pd.read_csv('pivot_test.csv', encoding='latin-1')
table_enroll_site_month.rename(columns={'site':'Study Site'}, inplace=True)
table_enroll_site_month


Study Site      Apr     Jul      Jun    May      All
0      A         5.0    0.0     8.0      4.0    17.0
1      B         9.0    0.0     11.0     5.0    25.0
2      C         6.0    1.0     3.0      20.0   30.0
3      D         5.0    0.0     3.0      2.0    10.0
4      E         5.0    0.0     5.0      0.0    10.0
5    All         30.0   1.0     30.0     31.0   92.0

想知道如何: 1. 显示月份,年份为 Apr16 Jul16 Jun16 May16 2. 不运行这一步是否可以得到同一张表(pvt_enroll.to_csv("pivot_test.csv")?我的意思是,我可以得到同样的结果而不需要先保存到.csv文件吗?

【问题讨论】:

    标签: python date monthcalendar


    【解决方案1】:

    我认为通过使用%b%y,您可以获得“Apr16”等格式。 我尝试使用以下代码,但没有保存到 .csv。

    import pandas as pd
    from datetime import datetime
    
    df=pd.read_csv("demo.csv")
    df["date"]=pd.to_datetime(df["date"])
    df['date'] = df['date'].apply(lambda x: datetime.strftime(x,'%b%y'))
    pvt_enroll=df.pivot_table(index='site', columns="date", values = 'baseline', aggfunc = {'baseline' : 'count'}, fill_value=0, margins=True) # Pivot_Table with enrollment by SITE by MONTH
    pvt_enroll.reset_index(inplace=True)
    pvt_enroll.rename(columns={'site':'Study Site'}, inplace=True)
    print(pvt_enroll)
    

    我得到如下输出

    date Study Site  Apr16  Jul16  Jun16  May16  All
    0             A      5      0      8      4   17
    1             B      9      0     11      5   25
    2             C      6      1      3     20   30
    3             D      5      0      3      2   10
    4             E      5      0      5      0   10
    5           All     30      1     30     31   92
    

    【讨论】:

    • 谢谢@弗朗西斯王子
    猜你喜欢
    • 2016-11-05
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2018-06-28
    • 2011-06-11
    • 1970-01-01
    相关资源
    最近更新 更多