Python 从数据框中删除不是数字或日期的行
我有一个类似的问题,除了我的列中有数字、文本和日期,而不是只有数字和文本。如何删除除数字和日期以外的所有行 例如,我有一个通用数据框: 身份证件 数字和日期 1. 40 2. 1/1/2021 3. AABBC 4. 20 5. 1/2/2021Python 从数据框中删除不是数字或日期的行,python,pandas,Python,Pandas,我有一个类似的问题,除了我的列中有数字、文本和日期,而不是只有数字和文本。如何删除除数字和日期以外的所有行 例如,我有一个通用数据框: 身份证件 数字和日期 1. 40 2. 1/1/2021 3. AABBC 4. 20 5. 1/2/2021 您可以创建两个系列来检查日期和数字,分别为to_datetime和to_numeric,并且只保留notnull的非空行。传递错误=“强制”将null返回为非日期/非数字: dates = pd.to_datetime(df['Nums and Dat
您可以创建两个系列来检查日期和数字,分别为to_datetime和to_numeric,并且只保留notnull的非空行。传递错误=“强制”将null返回为非日期/非数字:
dates = pd.to_datetime(df['Nums and Dates'], errors='coerce')
nums = pd.to_numeric(df['Nums and Dates'], errors='coerce')
df[(dates.notnull()) | (nums.notnull())]
Out[1]:
id Nums and Dates
0 1 40
1 2 1/1/2021
3 4 20
4 5 1/2/2021
您可以创建两个系列来检查日期和数字,分别为to_datetime和to_numeric,并且只保留notnull的非空行。传递错误=“强制”将null返回为非日期/非数字:
dates = pd.to_datetime(df['Nums and Dates'], errors='coerce')
nums = pd.to_numeric(df['Nums and Dates'], errors='coerce')
df[(dates.notnull()) | (nums.notnull())]
Out[1]:
id Nums and Dates
0 1 40
1 2 1/1/2021
3 4 20
4 5 1/2/2021
假设数据框的名称为df,列的名称为Nums和Dates,请尝试以下操作:
not_str_values = [value for value in df if type(value) is not str]
然后:
假设数据框的名称为df,列的名称为Nums和Dates,请尝试以下操作:
not_str_values = [value for value in df if type(value) is not str]
然后:
使用contains和regex,您可以一次通过该列。您可以删除 有字母表的行
df[~df['Nums and Dates'].str.contains(r'[A-Za-z]', regex=True)]
id Nums and Dates
0 1 40
1 2 1/1/2021
3 4 20
4 5 1/2/2021
使用contains和regex,您可以一次通过该列。您可以删除 有字母表的行
df[~df['Nums and Dates'].str.contains(r'[A-Za-z]', regex=True)]
id Nums and Dates
0 1 40
1 2 1/1/2021
3 4 20
4 5 1/2/2021
欢迎来到StackOverflow!请记住通过单击答案旁边的复选标记接受最佳解决方案作为答案。非常感谢。请参阅以下内容了解更多信息:欢迎使用StackOverflow!请记住通过单击答案旁边的复选标记接受最佳解决方案作为答案。非常感谢。有关更多信息,请参见以下内容: