按索引在大熊猫中删除行-是否必须添加到索引?

时间:2019-03-07 12:49:34

标签: python python-3.x pandas

我有一个来自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)

1 个答案:

答案 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