2 回答

TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊
您可以使用 str 的 startswith 函數(shù)來過濾列,如下例所示,無需在此之前對列進(jìn)行排序
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貢獻(xiàn)1921條經(jīng)驗 獲得超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: []}
添加回答
舉報