Create a subset of a DataFrame depending on column name

不想你离开。 提交于 2019-11-30 04:30:15

问题


I have a pandas DataFrame called timedata with different column names, some of which contain the word Vibration, some eccentricity. Is is possible to create a dataframe of just the columns containing the word Vibration?

I have tried using

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

to then create a DataFrame based on the indicies of these columns. This really does not seem like the most efficient way to do it and I'm sure there must be something simple to do with list comprehension.

EDIT

Dataframe of form:

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)})

Sorry I'm having a slow day! thanks for any help


回答1:


Something like this to manually select all columns with the word "Vibration" in it:

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

You can also do the same with the filter method:

df.filter(like="Vibration")

If you want to do a more flexible filter, you can use the regex option. E.g. to look if "Vibration" or "Ecc" is in the column name:

df.filter(regex='Ecc|Vibration')



回答2:


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

or

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

to get more collumns

to search for a value in a collumn:

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


来源:https://stackoverflow.com/questions/20903071/create-a-subset-of-a-dataframe-depending-on-column-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!