我正在尝试按标题名称在特定列之后从Pandas数据帧中拆分副本。
到目前为止,我已经能够根据一组已知的列来操纵列标题或索引,如下所示。但是,列数将发生变化,我仍然想提取之后发生的每一列。
在下面的示例中,说我想抓住'Tail'之后的所有列,即使'Body'列转到 X 列。因此,下面的示例具有 X 个“正文”列数:
df = pd.DataFrame({'Intro1': ['blah'],
'Intro2': ['blah'],'Intro3': ['blah'],'Body1': ['blah'],'Body2': ['blah'],'Body3': ['blah'],'Body4': ['blah'], ... 'BodyX': ['blah'],'Tail': ['blah'],'OtherTail': ['blah'],'StillAnotherTail': ['blah'],})
应按以下方式生成数据框的副本:
dftail = pd.DataFrame({'Tail': ['blah'],'OtherTail': ['blah'],'StillAnotherTail': ['blah'],})
理想情况下,我想找到一种结合以下两种技术的方法,以便该列从“ Tail”开始并到达数据框的末尾:
dftail = [col for col in df if col.startswith('Tail')]
dftail = df.iloc[:, 164:] # column number (164) will change based on 'Tail' index number
答案 0 :(得分:3)
如何?
df_tail = df.iloc[:, list(df.columns).index("Tail"):]
df_tail
然后打印出来:
Tail OtherTail StillAnotherTail
0 blah blah blah