如何访问数据帧单元格中字符串值的索引?

2024-09-26 22:11:09 发布

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

我和劳工统计局的数据是一样的:

series_id           year    period         value
CES0000000001       2006    M01            135446.0

series_id[3][4]表示超扇区。例如,CES10xxxxxx01将是Mining & Logging。我关心15个超级部门,因此我想为每个超级部门创建15个单独的数据帧来执行时间序列分析。因此,我尝试将每个值作为一个列表来访问,以实现以下功能:

# *psuedocode*:
mining_and_logging = df[df.series_id[3]==1 and df.series_id[4]==0]

我是否可以避免编写for循环,将每个值转换为一个列表,然后按索引进行访问,并将行添加到新的数据帧中?你知道吗

我怎样才能做到这一点?你知道吗


Tags: and数据iddf列表valueyearperiod
2条回答

通过for循环执行所需操作并递归存储数据帧的一种方法可以是:

首先,创建一个辅助列,让您的生活更轻松:

df['id'] = df['series_id'][3:5] #Exctract characters 3 and 4 of every string (counting from zero)

然后,创建一个空字典并填充它:

dict_df = {}
for unique_id in df.id.unique():
    dict_df[unique_id] = df[df.id == unique_id]

现在,您将拥有一个包含15个数据帧的字典。例如,如果要调用与id=01关联的数据帧,只需执行以下操作:

dict_df['01']

希望有帮助!你知道吗

把胡安C和G安德森的答案结合起来解决了这个问题。你知道吗

选择第3和第4个字符:

    df['id'] = df.series_id.str.slice(start=3, stop=5)

然后按以下步骤创建数据帧:

    dict_df = {}
    for unique_id in df.id.unique():
        dict_df[unique_id] = df[df.id == unique_id]

相关问题 更多 >

    热门问题