我有一个名为timedata
的pandas DataFrame,它有不同的列名,其中一些包含单词Vibration,有些偏心。是否可以创建仅包含单词Vibration?
我尝试过使用
vib=[]
for i in timedata:
if 'Vibration' in i:
vib=vib.append(i)
然后根据这些列的指示创建一个DataFrame。这似乎不是最有效的方法,我确信列表理解必须有一些简单的事情。
修改
表格数据框:
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)})
抱歉,我的日子很慢!谢谢你的帮助
答案 0 :(得分:13)
这样的东西可以手动选择其中包含“Vibration”一词的所有列:
df[[col for col in df.columns if "Vibration" in col]]
您也可以使用filter
方法执行相同操作:
df.filter(like="Vibration")
如果您想要更灵活的过滤器,可以使用regex
选项。例如。查看“振动”或“Ecc”是否在列名称中:
df.filter(regex='Ecc|Vibration')
答案 1 :(得分:1)
newDf = Df.loc[:,['Vibration']]
或
newDf = Df.loc[:,['Vibration','eccentricity']]
获取更多列以搜索列中的值:
newDf = Df[Df["CollumnName"] == "vibration"]