您可以使用iteritems()
方法遍历DataFrame的每一列,并结合条件语句来删除不是数字的行。以下是一个示例代码:
import pandas as pd
# 创建示例DataFrame
data = {'col1': [1, 2, 'a', 4, 5],
'col2': ['b', 2, 3, 4, 'c'],
'col3': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
# 遍历DataFrame的每一列并删除不是数字的行
for column, values in df.iteritems():
df = df[pd.to_numeric(df[column], errors='coerce').notnull()]
print(df)
输出:
col1 col2 col3
0 1 b 1
1 2 2 2
3 4 4 4
在上述示例中,我们使用iteritems()
方法遍历DataFrame的每一列。对于每一列,我们使用pd.to_numeric()
函数将单元格的值转换为数字。如果转换失败,则该单元格的值将被设置为NaN
。然后,我们使用notnull()
方法来检查每个单元格是否是数字,如果是数字则返回True
,否则返回False
。最后,我们使用布尔索引来删除不是数字的行。