Cree un subconjunto de un DataFrame dependiendo del nombre de la columna

Tengo un Pandas DataFrame llamado timedata con diferentes nombres de columna, algunos de los cuales contienen la palabra Vibración, algo de excentricidad. ¿Es posible crear un dataframe de solo las columnas que contienen la palabra Vibración?

He intentado usar

 vib=[] for i in timedata: if 'Vibration' in i: vib=vib.append(i) 

para luego crear un DataFrame basado en las indicaciones de estas columnas. Esto realmente no parece ser la forma más eficiente de hacerlo y estoy seguro de que debe haber algo simple que hacer con la comprensión de la lista.

EDITAR

Marco de datos de la forma:

 df = DataFrame({'Ch 1:Load': randn(10), 'Ch 2:Vibration Brg 1T ': randn(10), 'Ch 3:Eccentricity Brg 1H ': randn(10), 'Ch 4:Vibration Brg 2T ': randn(10)}) 

Lo siento, estoy teniendo un día lento! Gracias por cualquier ayuda

Algo como esto para seleccionar manualmente todas las columnas con la palabra “Vibración” en él:

 df[[col for col in df.columns if "Vibration" in col]] 

También puedes hacer lo mismo con el método de filter :

 df.filter(like="Vibration") 

Si desea hacer un filtro más flexible, puede usar la opción regex . Por ejemplo, para ver si “Vibración” o “Ecc” están en el nombre de la columna:

 df.filter(regex='Ecc|Vibration') 
  newDf = Df.loc[:,['Vibration']] 

o

 newDf = Df.loc[:,['Vibration','eccentricity']] 

para obtener más collumns

para buscar un valor en una columna:

 newDf = Df[Df["CollumnName"] == "vibration"]