2017-07-14 85 views
1

我想将数据集拆分为两种类型的数据点。目前我有一个这种格式的熊猫数据框。在字符串属性索引上拆分熊猫数据框

CS1001 True value1 
CM1001 False value2 
CS1002 True value3 

现在我想此分成S和A M数据帧这样的:

S架构:

C1001 True value1 
C1002 True value3 

由M帧:

C1001 False value2 

现在我碰到两个问题,我似乎无法将这4个字符组合在一起。

data.groupby(data.index[:4]) 

然后我无法编辑索引值来删除S/M。我之前没有使用熊猫,所以我觉得我正在监督一个明显的解决方案,但我无法弄清楚。

+0

可以请你分享你尝试过的代码,你得到了什么问题? –

回答

1

IIUC:

In [15]: data 
Out[15]: 
      1  2 
CS1001 True value1 
CM1001 False value2 
CS1002 True value3 

In [16]: data.groupby(data.index.str[:2]).groups 
Out[16]: 
{'CM': Index(['CM1001'], dtype='object'), 
'CS': Index(['CS1001', 'CS1002'], dtype='object')} 

删除第二个字母从指数值:

In [5]: df.index = df.index.str[:1] + df.index.str[2:] 

In [6]: df 
Out[6]: 
      1  2 
C1001 True value1 
C1001 False value2 
C1002 True value3 
+0

工作起来很有意义,你必须要求一个带.str的字符串。非常感谢你的帮助。你会碰巧知道如何编辑索引值来删除S/M吗? – FlorianEn

+0

@FlorianEn,不客气。你想如何转换它:'CS1001'到'C1001'还是'1001'? – MaxU

+0

CS1001到C1001 – FlorianEn