You can use str dataframe startwith methods:
df = data[data.columns[data.columns.str.startwith('durations') | data.columns.str.startwith('so')]] df.fillna(0)
Or you can use the contains method:
df = data.iloc[:, data.columns.str.contains('durations.*'|'shape.*') ] df.fillna(0)
source share