我试图删除特定列值为数字的行。以下是我的尝试-
# Import pandas library
import pandas as pd
# initialize list of lists
data = [['tom', 'Ten'], ['nick', 'Fifteen'], ['juli', 14]]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['Name', 'Age'])
#https://stackoverflow.com/questions/48996822/python-drop-rows-from-a-pandas-dataframe-that-contain-numbers
df = df[~df.Age.str.contains(r'\d')]
# print dataframe.
print(df)
在本例中,应该删除Age
= 14的行,但我得到了以下错误-
TypeError: bad operand type for unary ~: 'float'
编辑1:我非常感谢所有的快速回答。但不幸的是,我的尝试没有涵盖一个边缘情况。如果数据是这样的格式-
data = [['tom', 'Ten'], ['nick', 'Fifteen'], ['juli', '4chan'], ['astha', 18]]
在这里,我查找要删除的Age
= 18的行,而不是Age
= 4chan
的行
2条答案
按热度按时间sqxo8psd1#
将
Age
列强制转换为str
类型,并使用str.isnumeric
检查字符串是否为数字:1l5u6lss2#
您需要将其转换为str 1st