gpt4 book ai didi

python - 如果某行包含 pandas 中的某个值,则删除该行

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

我有这个文本文件:

LEU,LEID,PPP,YYY,LEO
'1','2','3','4','5'
'2','1','2','3','4'
'2','AA','','',''

我想删除 LEID='1' 的行

import pandas as pd
import os

originalFile=os.path.abspath("D:\\python\\test\\OriginalFile.csv")

df = pd.read_csv(originalFile)

df = df[(df['LEID'] !='1')]

df.to_csv('D:\\python\\test\\CorrectedFile.csv')

print (df)

为什么 LEID='1' 的行没有被删除?

最佳答案

正如您所拥有的,引号字符仍然包含在您的数据框中。它可能看起来像:

>>> df
LEU LEID PPP YYY LEO
0 '1' '2' '3' '4' '5'
1 '2' '1' '2' '3' '4'
2 '2' 'AA' '' '' ''

因此,您实际上需要在过滤器中包含这些引号。你可以这样做:

df[df['LEID'] != "'1'"]
# or:
df[df['LEID'] !='\'1\'']

LEU LEID PPP YYY LEO
0 '1' '2' '3' '4' '5'
2 '2' 'AA' '' '' ''

另一种方法是在读取 csv 时删除单引号:

df = pd.read_csv(originalFile, sep=',', quotechar="'")

你将得到这个数据框:

>>> df
LEU LEID PPP YYY LEO
0 1 2 3.0 4.0 5.0
1 2 1 2.0 3.0 4.0
2 2 AA NaN NaN NaN

您可以像尝试一样进行过滤:

df[df['LEID' ]!= '1']

LEU LEID PPP YYY LEO
0 1 2 3.0 4.0 5.0
2 2 AA NaN NaN NaN

关于python - 如果某行包含 pandas 中的某个值,则删除该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198592/

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