我有一个来自read_csv的182行的熊猫数据框。第一列sys_code包含各种字母数字代码。我想删除以'FB'开头的内容(其中有14个)。我遍历数据框,将假定的索引添加到列表中,然后尝试使用该列表按索引删除。但是,除非我在每个索引号上加18,否则这是行不通的。
不加18,我得到一个包含84-97的数字的列表。当我尝试使用该列表作为索引删除行时,出现KeyError:'[84]在轴上找不到'。但是,当我在每个数字上加上18时,它至少在该特定数据集上工作正常。但是为什么呢?我不应该与索引号相同吗?
fb = []
i = 0
df.reset_index(drop=True)
for x in df['sys_code']:
if x[:2] == 'FB':
fb.append(i+18) #works
fb.append(i) # doesn't work
i += 1
df.drop(fb, axis=0, inplace=True)
答案 0 :(得分:2)
您可以使用Series.str.startswith
。这是一个示例:
_destroy: true
您可以使用以下方法删除不以df = pd.DataFrame({'col1':['some string', 'FBsomething', 'FB', 'etc']})
print(df)
col1
0 some string
1 FBsomething
2 FB
3 etc
开头的字符串:
FB