[英]Remove all rows that contains the IDs in column1 that have at least one specific value on another specific column2 in a Python Dataframe
[英]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 方法。
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.