关于pandas的查询,深深的掉了一个大坑。
以此来记录一下
- 不知道元素在那一列,哪一行,先上一个坑。
t1 =time.clock()
for id in ids:#id为需要查找的元素
for indexs in df1.index:#循环行
for i in range(len(df1.loc[indexs].values)):循环行内元素
if(df1.loc[indexs].values[i] ==id):
print(indexs,i)#打印元素位置
print(df1.loc[indexs].values[i])
print(time.clock()-t1)
来看看时间。很无语,百度的一种方法,当时比较急,没有细想
- 自己优化后,其实不要返回元素具体位置,只需要定位到某一行即可。
t1 =time.clock()
for index in df1.index:
for id in ids:
if id in list(df1.iloc[index]):
print('ok')
# print(list(df1.iloc[index]))
print(time.clock()-t1)
来看看时间。。。很无语,这个坑啊,哎。
- 另外还有一种方法
t1 =time.clock()
for id in ids:
for index in df1.index:
if id in list(df1.iloc[index]):
print('ok')
# print(list(df1.iloc[index]))
print(time.clock()-t1)
记录到这里,时刻提醒自己,一定要先想,在写。
----------记录一个菜鸟的学习历程。