2 回答

TA贡献1866条经验 获得超5个赞
您可以使用 str 的 startswith 函数来过滤列,如下例所示,无需在此之前对列进行排序
df = pd.DataFrame(np.random.rand(10,10), columns=[f"{a}_{i}" for i in range(5) for a in "AB"])
df1= df.loc[:, df.columns.str.startswith("A_")]
df2 = df.loc[:, df.columns.str.startswith("B_")]
display(df1.head())
display(df2.head())

TA贡献1921条经验 获得超9个赞
您可以使用groupby在第一个之前拆分存根上的 DataFrame '_'。您可以将它们存储在以存根作为键的字典中。
df = pd.DataFrame(columns=['BT_XXX_XX.XX%_X.XX.XX', 'BT_13131_1231231',
'EH_XXX_XX.XX%_XX.XX.XX', 'C_XXX_XX.XX%_XX.XX.XX'])
dict(tuple(df.groupby(df.columns.str.split('_').str[0], axis=1)))
{'BT': Empty DataFrame
Columns: [BT_XXX_XX.XX%_X.XX.XX, BT_13131_1231231]
Index: [],
'C': Empty DataFrame
Columns: [C_XXX_XX.XX%_XX.XX.XX]
Index: [],
'EH': Empty DataFrame
Columns: [EH_XXX_XX.XX%_XX.XX.XX]
Index: []}
添加回答
举报