根据列nam创建数据帧的子集

2024-09-29 06:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为timedata的pandas数据框,它有不同的列名,其中一些列名包含单词Vibration,一些包含偏心率。是否可以仅创建包含单词Vibration的列的数据帧?

我试过用

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

然后根据这些列的标记创建数据帧。这看起来真的不是最有效的方法,我相信一定有一些简单的清单理解。

编辑

数据帧格式:

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

对不起,我今天过得很慢!谢谢你的帮助


Tags: 数据in标记pandasforifch单词
2条回答
 newDf    = Df.loc[:,['Vibration']]

或者

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

为了得到更多的共谋者

要在合谋中搜索值,请执行以下操作:

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

类似这样的操作可以手动选择其中包含“振动”一词的所有列:

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

您还可以对filter方法执行同样的操作:

df.filter(like="Vibration")

如果你想做一个更灵活的过滤器,你可以使用regex选项。E、 g.查看列名中是否有“振动”或“Ecc”:

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

相关问题 更多 >