我有一个名为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)})
抱歉,我今天过得很慢!谢谢你的帮助
最佳答案
这样的操作可以手动选择其中包含“振动”一词的所有列:
df[[col for col in df.columns if "Vibration" in col]]
您还可以使用
filter
方法执行相同的操作:df.filter(like="Vibration")
如果您想做一个更灵活的过滤器,可以使用
regex
选项。例如。查看“振动”或“Ecc”是否在列名称中:df.filter(regex='Ecc|Vibration')
关于python - 根据列名称创建DataFrame的子集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20903071/