微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 转换ISO周日期格式的通用日期格式

我有这种数据帧这种日期格式

           Date  Week Number   Influenza[it]  Febbre[it]  Rinorrea[it]  
0    2008-01-01             1            220         585           103   
1    2008-01-08             2            403         915           147   
2    2008-01-15             3            366         895           136   
3    2008-01-22             4            305         825           136   
4    2008-01-29             5            311         837           121 
... ...

我想像ISO数据帧一样转换ISO周日期格式的日期格式(因为我需要根据年份和周数将两个数据帧相同的日期相交).格式类似于“year-weeknumberoftheyear”.

0     2007-42
1     2007-43
2     2007-44
3     2007-45
4     2007-46
... ...

所以我能够以这种方式找到第一个数据帧的ISO周:

wiki = pd.read_csv('file.csv', parse_dates=['Date'])
for i,d in wiki.iterrows():
    print d.Date.isocalendar()[1]

输出

1
2
3
4
...

但我不知道如何制作类似第二个数据帧的日期格式(以“年 – 周年数”为单位)

解决方法:

在读取操作之后,您可以使用向量化方法

df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y-%V')
df['Date']
0    2008-01
1    2008-02
2    2008-03
3    2008-04
4    2008-05
Name: Date, dtype: object

这里,%V是对应于ISO 8601周数的指令.

演示:

from io import StringIO
data = StringIO(
'''
Date     Week Number   Influenza[it]  Febbre[it]  Rinorrea[it]  
2008-01-01             1            220         585           103   
2008-01-08             2            403         915           147   
2008-01-15             3            366         895           136   
2008-01-22             4            305         825           136   
2008-01-29             5            311         837           121
''')
df = pd.read_csv(data, sep='\s{2,}', parse_dates=['Date'], engine='python')
df

enter image description here

df['Date'].dtypes
dtype('<M8[ns]')

df['Date'].dt.strftime('%Y-%V')
0    2008-01
1    2008-02
2    2008-03
3    2008-04
4    2008-05
Name: Date, dtype: object

编辑:(虽然效率低,仅用于再现性目的)

L = ['{}-{}'.format(d.Date.isocalendar()[0], str(d.Date.isocalendar()[1]).zfill(2)) for i,d in wiki.iterrows()]

构建系列:

>>> pd.Series(L)
0    2008-01
1    2008-02
2    2008-03
3    2008-04
4    2008-05
dtype: object

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐