
Python Pandas:根据数据类型在DataFrame中赋值“OK”或“NO”
本文介绍如何使用Python Pandas库,根据DataFrame中两列(例如'a列'和'b列')的数据类型,为新列(例如'结果')赋值“OK”或“NO”。如果'a列'和'b列'中对应行的值均为整数类型,则新列赋值为“OK”,否则赋值为“NO”。
方法:
我们可以利用Pandas的apply()方法结合isinstance()函数实现此功能。apply()方法可以对DataFrame的行或列进行逐元素操作,而isinstance()函数则用于判断数据类型。
代码示例:
import pandas as pd
# 创建示例DataFrame
data = {'a列': [1, '2', 3, 4.5], 'b列': [5, 6, '7', 8]}
df = pd.DataFrame(data)
# 定义判断函数
def check_type(row):
if isinstance(row['a列'], int) and isinstance(row['b列'], int):
return 'OK'
else:
return 'NO'
# 应用判断函数并创建新列
df['结果'] = df.apply(check_type, axis=1)
# 打印结果
print(df)
输出:
a列 b列 结果 0 1 5 OK 1 2 6 OK 2 3 7 NO 3 4.5 8 NO
代码解释:
- 我们首先创建了一个示例DataFrame。
-
check_type函数接受DataFrame的一行作为输入,并检查'a列'和'b列'的值是否都是整数。 -
df.apply(check_type, axis=1)将check_type函数应用于DataFrame的每一行(axis=1指定按行操作),并将结果存储在新的'结果'列中。
此方法清晰简洁,易于理解和维护,并且避免了使用np.where带来的潜在性能问题,尤其是在处理大型DataFrame时。 它直接利用Pandas的内置函数,更符合Pandas的编程风格。










