Python 如何找到将列拆分为两个新列的行?

Python 如何找到将列拆分为两个新列的行?,python,regex,data-analysis,data-cleaning,Python,Regex,Data Analysis,Data Cleaning,我正在处理一个数据框架,试图清理一些东西,但遇到了一些不寻常的元素。两个测试值在下面发布的相同结果列中表示。我想将CRP组分为另外两列,暂定标题为“CRP_mgml”和“CRP_Result”,但我不确定如何找到我的IL6行结束和CRP行开始的位置。我有一种感觉,我可以使用正则表达式函数来解析,但我对这一点非常陌生,所以需要一些帮助。先谢谢你 df2[['Group_Id', 'Result']] Out[46]:

我正在处理一个数据框架,试图清理一些东西,但遇到了一些不寻常的元素。两个测试值在下面发布的相同结果列中表示。我想将CRP组分为另外两列,暂定标题为“CRP_mgml”和“CRP_Result”,但我不确定如何找到我的IL6行结束和CRP行开始的位置。我有一种感觉,我可以使用正则表达式函数来解析,但我对这一点非常陌生,所以需要一些帮助。先谢谢你

df2[['Group_Id', 'Result']]
Out[46]: 
                                               Group_Id  Result
0     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
1     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
2     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
3     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   392.0
4     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
5     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
6     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
7     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
**8     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
9     LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   328.0
10    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
11    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
12    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
13    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
14    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
15    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   400.0
16    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    70.9
17    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...     3.4
18    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...     2.6
19    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...     1.9
20    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    30.0
21    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    19.3
22    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    39.4
23    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    17.0
24    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    36.9
25    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...     2.6
26    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    10.4
27    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...     3.4
28    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...    11.3
29    LAB\(LLB63) DBNull\(LLB64) DBNull\INTERL6\BCIL...   281.0
                                                ...     ...
4558                                         CRP (mg/L)     1.5
4559                                         CRP (mg/L)     2.0
4560                                         CRP (mg/L)     5.3
4561                                         CRP (mg/L)     0.8
4562                                         CRP (mg/L)     1.2
4563                                         CRP (mg/L)     2.0
4564                                         CRP (mg/L)     2.6
4565                                         CRP (mg/L)     3.1
4566                                         CRP (mg/L)     3.9
4567                                         CRP (mg/L)     5.5
4568                                         CRP (mg/L)     7.8
4569                                         CRP (mg/L)    13.0
4570                                         CRP (mg/L)    20.2
4571                                         CRP (mg/L)    25.0
4572                                         CRP (mg/L)    24.8
4573                                         CRP (mg/L)    42.3
4574                                         CRP (mg/L)    71.0
4575                                         CRP (mg/L)   171.2
4576                                         CRP (mg/L)   271.6
4577                                         CRP (mg/L)   289.0
4578                                         CRP (mg/L)   148.7
4579                                         CRP (mg/L)    77.3
4580                                         CRP (mg/L)    69.0
4581                                         CRP (mg/L)    68.5
4582                                         CRP (mg/L)    69.7
4583                                         CRP (mg/L)   125.5
4584                                         CRP (mg/L)    41.9
4585                                         CRP (mg/L)    12.9
4586                                         CRP (mg/L)     4.1
4587                                         CRP (mg/L)    10.9
[4588 rows x 2 columns]**

无法使用
.split()
进行拆分吗


看起来所有CRP行的组ID都相同。如果这是真的,您可以基于组id创建2个新数据帧

它看起来像:

crpDF = df2[df2.Group_Id == "CRP (mg/L)"]
il6DF = df2[~(df2.Group_Id == "CRP (mg/L)")]
波浪线(~)是一个否定符号,因此它将取(df.Group_Id=='CRP(mg/L)')返回的序列,并返回相反的序列


我喜欢这个解决方案,因为它不依赖于正在排序的df。

它对crp组很有效,但是使用否定符号返回了一个错误“一元操作数的操作数类型错误:str”。很抱歉,我忘了把它放在括号中。我已经更新了代码片段。
crpDF = df2[df2.Group_Id == "CRP (mg/L)"]
il6DF = df2[~(df2.Group_Id == "CRP (mg/L)")]