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

Python 如何访问数据帧单元格中字符串值的索引?,python,pandas,Python,Pandas,我在劳动统计局工作,数据如下: series_id year period value CES0000000001 2006 M01 135446.0 series_id[3][4]表示超级部门。例如,CES100xxxxxx01将是挖掘和记录。我关心的是15个超级部门,因此我想为每个超级部门创建15个单独的数据帧来执行时间序列分析。因此,我试图以列表的形式访问每个值,以实现以下目标: #*psuedocode*

我在劳动统计局工作,数据如下:

series_id           year    period         value
CES0000000001       2006    M01            135446.0
series_id[3][4]
表示超级部门。例如,
CES100xxxxxx01
将是
挖掘和记录
。我关心的是15个超级部门,因此我想为每个超级部门创建15个单独的数据帧来执行时间序列分析。因此,我试图以列表的形式访问每个值,以实现以下目标:

#*psuedocode*:
挖掘和日志记录=df[df.series\u id[3]==1和df.series\u id[4]==0]
我是否可以避免编写for循环,将每个值转换为一个列表,然后按索引访问并将行添加到新的数据帧中


如何实现这一点?

通过
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·安德森的答案结合起来解决了这个问题

选择第三个和第四个字符:

    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]

让我澄清一下。您正试图获取CES之后的两个数字,并根据这些代码将数据帧拆分为15个不同的数据帧?请查看并提供更可靠的样本输入和首选样本输出。你也可以找到熊猫helpful@JuanC是的,这正是我想要做的。谢谢@G.Anderson!series.str.slice很有用!谢谢,第一部分不起作用,因为df['series_id][3:5]选择第三行和第四行。但是第二部分成功了!