需求确认:
筛选DataFrame列名中包含某个特殊的字符串的打印出来,比如当前数据有五列,createtime、education、salary、date、time,现在需要将列名中包含time的,选取出来,并打印。
通过观察可得,有两列符合要求,分别是createtime、time。则本次需求是在众多列中,选择其中的两列即可。
代码实现:
原始数据如下:
import pandas as pdimport numpy as np
data=pd.read_excel('Excel_test.xlsx')
data['date']=data['create_time'].dt.date
data['time']=data['create_time'].dt.time
data.head()
第一种方法:利用函数。
新建函数col_,利用map()、find()函数,循环查找是否存在time,如果存在,则True,反之False.并将结果传到loc[]中,得到最终结果。
def col_(x):
if x.find('time')>=0:
result=True
else:
result=False
return result
data.loc[:,data.columns.map(col_)].head()
第二种方法:利用filter()方法,得到结果值。(只需要一列就能够实现!!!)
data.filter(regex='time')
DataFrame.filter(items=None, like=None, regex=None, axis=None)#items对列进行筛选#regex表示用正则进行匹配#like进行筛选#axis=0表示对行操作, axis=1表示对列操作
- items对列进行筛选
data.filter(items=['create_time', 'education','salary'])
- regex表示用正则进行匹配
data.filter(regex='e