如何使用Python将格式化的“epiweek”转换为日期?

2024-04-26 08:06:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在努力学习如何将通过Coursera和Dataquest学习到的数据科学技能应用到一些小的个人项目中。你知道吗

我在Google BigQuery上找到了一个数据集,来自美国卫生和公众服务部,其中包括1888年至2013年间公布的所有美国城市和州的国家法定疾病每周监测报告。你知道吗

我将数据导出到一个.csv文件中,并将其导入一个Jupyter笔记本中,我正在Anaconda中运行该笔记本。在查看数据集的标题时,我注意到日期/周显示为“epi\u week”。你知道吗

我正在努力使数据更具可读性和可用于某些分析,为此,我希望将其转换为类似DD/MM/YYYY或Week/Month/Year等的内容

我做了一些研究,显然epi weeks也被称为CDC weeks,到目前为止,我发现了python3的一个扩展/包,叫做“epiweeks”。你知道吗

使用epiweeks包,我可以将一些“正常”日期转换成包创建者所指的某种epi weeks形式,但它们看起来与我在数据集中看到的完全不同。你知道吗


例如,如果我使用今天的日期,即2019年5月24日(24/05/2019),则输出为:“2019年第21周”,但这是数据中前四个条目(所有其他条目的格式相同)的样子:

计划周

'197006'

'197007年'

'197008'年

'197012'


In [1]: disease_header

Out [1]: 
[['epi_week', 'state', 'loc', 'loc_type', 'disease', 'cases', 'incidence_per_100000']]

In [2]: disease[:4]

Out [2]:
[['197006', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0'],
['197007', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0'],
['197008', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0'],
['197012', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0']]

Tags: 数据in笔记本outlocakstateepi
1条回答
网友
1楼 · 发布于 2024-04-26 08:06:35

epiweeks包的开发是为了解决像您在这里遇到的问题。你知道吗

使用您提供的示例数据,让我们创建一个新列,其中包含一周结束日期:

import pandas as pd
from epiweeks import Week

columns = ['epi_week', 'state', 'loc', 'loc_type',
           'disease', 'cases', 'incidence_per_100000']
data = [
    ['197006', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0'],
    ['197007', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0'],
    ['197008', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0'],
    ['197012', 'AK', 'ALASKA', 'STATE', 'MUMPS', '0', '0']
]

df = pd.DataFrame(data, columns=columns)

# Now create a new column with week ending date in ISO format
df['week_ending'] = df['epi_week'].apply(lambda x: Week.fromstring(x).enddate())

结果是:

enter image description here

我建议您查看epiweeks包documentation以获取更多示例。你知道吗

如果只需要年和周列,则无需使用epiweeks包即可完成:

df['year'] = df['epi_week'].apply(lambda x: int(x[:4]))
df['week'] = df['epi_week'].apply(lambda x: int(x[4:6]))

结果是:

enter image description here

相关问题 更多 >