我有一个如下所示的表格,我想将其分成两个。问题是行数不同,我需要在包含字符串“CPT”的第三行分隔表格。这一行并不总是第 10 行。该表由 dataframe 表示dfm
。我希望能够创建两个新的数据框,一个包含第三行上方包含“CPT”的行,一个包含第三行下方包含“CPT”的行
到目前为止,我有以下代码来识别所有行,特别是包含“CPT”的第三行,但我不确定我是否走在正确的轨道上。
dfm.columns
i= dfm.index[dfm['LABEL(click to hide)'] == 'CPT'].tolist()
i
i[-1]
Filter_dfm = dfm[dfm.index.isin(i)]
Filter_dfm
编辑:我使用以下代码将数据帧 dfm 拆分为包含“CPT”的行的多个数据帧
dfm.rename(columns = {'LABEL(click to hide)' : 'ExSD', '(I)' : 'Risk'}, inplace = True)
m = dfm.ExSD.str.contains('CPT').cumsum()
d = {f'dfm{i}': g for i, g in dfm.groupby(m)}
for k, v in d.items():
print(k)
print(v, end='\n\n')
然后返回我想要的数据帧,我使用了输入:
d['dfm2']
输出:
ExSD Risk
1 CPT % Utilization Cumulative (With No New Charge) ...
2 05/1622:00 115.97 %
3 05/1700:45 37.3 %
4 05/1705:00 34.21 %
5 05/1712:00 22.27 %
6 05/1714:00 30.01 %
7 05/1716:00 33.93 %
8 05/1717:00 42.04 %
9 05/1718:00 46.48 %
输入:
d['dfm3']
输出:
ExSD Risk
10 CPT % Utilization Cumulative (With No New Charge) ...
11 05/1622:00 8.24 %
12 05/1700:45 53.05 %
13 05/1705:00 36.04 %
14 05/1712:00 21.21 %
15 05/1714:00 20.65 %
16 05/1716:00 21.13 %
17 05/1717:00 23.09 %
18 05/1718:00 23.46 %