新手求救如何用关键字列表删除行
由于关键字数量很大,有几百个,建了一个关键字EXCEL关键字.xlsx。里面只有一列“关键字”另一个EXCEL表格是数据表.xlsx,需要根据关键字列表删除对应的行。此表第一列是"关键字"
如下代码报错,求助各位。谢谢
import pandas as pd
import numpy as np
cs=pd.read_excel('关键字.xlsx',dtype=str)
cs=cs.set_index('关键字')
ds=pd.read_excel('数据表.xlsx',dtype={'关键字':str})
ds.drop(cs['关键字'])
运行报错
KeyError Traceback (most recent call last)
KeyError: "['03100111', '03100112', '03100201', '03100202'] not found in axis"
该如何修改?
再次感谢 没找到怎么删?应该确定已经找到,然后再删不行吗?
或者,实在不行那就这样办
ds=pd.read_excel('数据表.xlsx',dtype={'关键字':str})
try:
ds.drop(cs['关键字'])
except Exception as e:
pass
. . . . . . 本帖最后由 cjh4312@163.com 于 2022-11-4 19:49 编辑
你看看是不是因为你的关键字 并不是索引,drop是根据你的索引来删除的,所以找不到行了。
打开excel的时候,加上index_col=0,强制指定第一列为索引 cjh4312@163.com 发表于 2022-11-4 19:43
你看看是不是因为你的关键字 并不是索引,drop是根据你的索引来删除的,所以找不到行了。
打开excel的时候 ...
强制设置索引也不行,一样报错 本帖最后由 iam6000 于 2022-11-4 20:14 编辑
如果改成如下就能运行,但是我不需要这样啊,关键字太多只能放EXCEL里啊:
mport pandas as pd
import numpy as np
cs=pd.read_excel('关键字.xlsx',dtype=str)
cs=cs.set_index('关键字')
ds=pd.read_excel('数据表.xlsx',dtype={'关键字':str})
ds.drop(['03100111', '03100112', '03100201', '03100202'])
#ds.drop(cs['关键字']) 这个就报错。为啥呢
iam6000 发表于 2022-11-4 20:06
如果改成如下就能运行,但是我不需要这样啊,关键字太多只能放EXCEL里啊:
你试试把第一个excel的关键字不要设置成索引 cjh4312@163.com 发表于 2022-11-4 20:28
你试试把第一个excel的关键字不要设置成索引
和关键字是不是索引没关系啦。报错的不是这个 iam6000 发表于 2022-11-4 20:42
和关键字是不是索引没关系啦。报错的不是这个
‘关键字’这一列设置成索引,cs['关键字']这么写会有问题。 cjh4312@163.com 发表于 2022-11-4 20:52
‘关键字’这一列设置成索引,cs['关键字']这么写会有问题。
取消关键字就是最开始的错误:KeyError: "['03100111', '03100112', '03100201', '03100202'] not found in axis"
使用cs.values也报错。试好多种写法都过不去。
iam6000 发表于 2022-11-4 21:46
取消关键字就是最开始的错误:KeyError: "['03100111', '03100112', '03100201', '03100202'] not found...
我测试了一下,就是把第一个索引去掉,第二个文件索引加上,就可以通过了
dd=pd.read_excel('e:\stock.xlsx')
df=pd.read_excel('e:\stock_list.xlsx',index_col=0)
df.drop(dd['ts_code'],inplace=True) cjh4312@163.com 发表于 2022-11-4 22:03
我测试了一下,就是把第一个索引去掉,第二个文件索引加上,就可以通过了
dd=pd.read_excel('e:\sto ...
奇怪。我重新建一个新表就能通过。用导入的EXCEL表就报错。可能是导入的表格式有问题。
十分感谢帮我解决问题。
再次谢谢
页:
[1]