gpt4 book ai didi

python - 按索引删除 pandas 中的行 - 必须添加到索引吗?

转载 作者:行者123 更新时间:2023-12-01 01:08:57 24 4
gpt4 key购买 nike

我有一个来自 read_csv 的 182 行 pandas 数据框。第一列 sys_code 包含各种字母数字代码。我想删除以“FB”开头的(有 14 个)。我循环遍历数据帧,将我认为是索引的内容添加到列表中,然后尝试使用列表按索引删除。但除非我将 18 添加到每个索引号,否则这不起作用。

如果不添加 18,我会得到一个包含 84 - 97 之间数字的列表。当我尝试使用此列表作为索引删除行时,我收到 KeyError: '[84] not found in axis'。但是当我将 18 添加到每个数字时,效果很好,至少对于这个特定的数据集来说是这样。但这是为什么呢? i 不应该与索引号相同吗?

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)

最佳答案

您可以使用Series.str.startswith 。这是一个例子:

df = pd.DataFrame({'col1':['some string', 'FBsomething', 'FB', 'etc']})
print(df)

col1
0 some string
1 FBsomething
2 FB
3 etc

您可以使用以下方法删除那些不以 FB 开头的字符串:

df[~df.col1.str.startswith('FB')]

col1
0 some string
3 etc

关于python - 按索引删除 pandas 中的行 - 必须添加到索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55044204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com