繁体   English   中英

Python - 需要删除数据框中的所有数据,其中特定列的值至少包含 1 个字母

[英]Python - Need to drop all data in the dataframe, where the value of one specific column contains at least 1 letter

我有一个数据集,其中一列的值例如:001、002、XXX、R02、T01、003、004。我需要从数据集中删除所有行,其中该列的值至少有 1 个字母在格式 (R02, T01, XXX) 中,只留下数字格式。 换句话说,我需要保留该列具有以下值的所有数据:001、002、003、004。

我曾尝试使用以下功能,但我没有运气。

searchfor = ['r', 't']
Filtered_Table = Filtered_Table[~Filtered_Table.ToBeDeleted2.str.contains('|'.join(searchfor))]

你可能可以用熊猫做你想做的事情。

使用 df.drop()

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html

https://chrisalbon.com/python/data_wrangling/pandas_dropping_column_and_rows/

这是有关该功能如何工作的两个有用链接。

您也可以尝试使用 Regex re.search 方法。

https://www.w3schools.com/python/python_regex.asp

Python 区分大小写,因此您需要在下面使用来搜索 ['R', 'T']

searchfor = ['R', 'T'] Filtered_Table = Filtered_Table[~Filtered_Table.ToBeDeleted2.str.contains('|'.join(searchfor))]

演示:

import pandas as pd
Filtered_Table = pd.DataFrame([['001', '002'], ['R02', 'XXX'], ['T01', '003'], ['007', '008']], columns=["ToBeDeleted2", "ColB"])

searchfor = ['R', 'T']
Filtered_Table = Filtered_Table[~Filtered_Table.ToBeDeleted2.str.contains('|'.join(searchfor))]

Input:
ToBeDeleted2    ColB
0   001        002
1   R02        XXX
2   T01       003
3   007       008

Output:
    ToBeDeleted2    ColB
    0   001        002 
    3   007       008

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM