在标题python pandas中搜索零件字符串

时间:2018-11-15 08:13:46

标签: python pandas dataframe

我认为我已经阅读了所有类似的文章,但没有找到我需要的东西。

我有一堆.csv文件,它们在原理上相似,但是标题名称可能有所不同,列的位置也不同,等等。 我使用pd.read_csv称呼他们:

df = pd.read_csv('MyFile.csv', delimiter=';')

这是示例csv文件头的一部分:

Index(['1. Datum', '2. Zeit', '3. Tunnellaenge. m', '4. Vermessung: Hor. Ablage der Maschine. mm', '5. Vermessung: Vert. Ablage der Maschine. mm', ………... '21. SR:Drehzahl. rpm', '22. SR:Erddruck Schild. bar', '23. STZ:Gesamtkraft. kN', 'Unnamed: 23'], dtype='object'

我希望我的代码进入标题并找到我想要的列(基于零件字符串)。 例如,我总是需要列'3。 Tunnellaenge。 m',名称通常不会更改,所以我会使用:

df['length'] = df.filter(like='laenge')

通常可以,但是如果我想搜索关键字“ laenge”和/或“ length”怎么办?

就像标题'4一样。 Vermessung:Hor。 Ablage der Maschine。毫米”,。在这里,我希望df.filter返回包含'Hor' AND 'Maschine'的列。我该怎么办?我也尝试过'regex'函数,但对我来说不起作用。使用 str.contains()函数会更好吗?

这非常重要,因为我有许多不同的CSV文件,并且不想每次都调整代码。

谢谢。

1 个答案:

答案 0 :(得分:1)

使用:

m1 = df.columns.str.contains('laenge')
m2 = df.columns.str.contains('length')
m = m1 & m2

df1 = df.loc[:, m]