gpt4 book ai didi

python - 从数据框中删除包含特定字符串的行

转载 作者:行者123 更新时间:2023-11-30 22:05:19 24 4
gpt4 key购买 nike

我有许多 CSV 文件,其头部如下所示:

09/07/2014,26268315,,
10/07/2014,6601181,16.3857
11/07/2014,916651,12.5879
14/07/2014,213357,,
15/07/2014,205019,10.8607

我需要将其读入数据帧并使用 ,, 删除任何行,但是当我使用以下方法将 CSV 数据读入数据帧时:

df = pd.read_csv(raw_directory+'\\'+filename, error_bad_lines=False,header=None)

我得到:

            0         1        2   3
0 09/07/2014 26268315 NaN NaN
1 10/07/2014 6601181 16.3857 NaN
2 11/07/2014 916651 12.5879 NaN
3 14/07/2014 213357 NaN NaN
4 15/07/2014 205019 10.8607 NaN

如何将 CSV 数据读入数据帧并获取:

                             0 
0 09/07/2014,26268315,,
1 10/07/2014,6601181,16.3857
2 11/07/2014,916651,12.5879
3 14/07/2014,213357,,
4 15/07/2014,205019,10.8607

我需要删除存在 ,, 的所有行。然后将调整后的数据框重新保存到新的 CSV 文件中。我打算使用:

stringList = [',,']

df = df[~df[0].isin([stringList])]

删除带有 ,, 的行,这样生成的 .csv 头看起来像:

10/07/2014,6601181,16.3857
11/07/2014,916651,12.5879
15/07/2014,205019,10.8607

最佳答案

我想这里可以删除所有带有 NaN 的列,然后删除带有任何 NaN 的行:

df = df.dropna(axis=1, how='all').dropna()
print (df)
0 1 2
1 10/07/2014 6601181 16.3857
2 11/07/2014 916651 12.5879
4 15/07/2014 205019 10.8607

另一种解决方案是添加分隔符,该值不在像|这样的数据中,然后按endswith进行过滤:

df = pd.read_csv(raw_directory+'\\'+filename, error_bad_lines=False,header=None, sep='|')
df = df[~df[0].str.endswith(',')]
#alternative solution - $ is for end of string
#df = df[~df[0].str.contains(',$')]
print (df)
0
1 10/07/2014,6601181,16.3857
2 11/07/2014,916651,12.5879
4 15/07/2014,205019,10.8607

关于python - 从数据框中删除包含特定字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53059664/

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