标签导航:

pandas dataframe数据类型判断:如何根据两列数据类型赋值“ok”或“no”?

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

代码解释:

  1. 我们首先创建了一个示例DataFrame。
  2. check_type函数接受DataFrame的一行作为输入,并检查'a列'和'b列'的值是否都是整数。
  3. df.apply(check_type, axis=1)将check_type函数应用于DataFrame的每一行(axis=1指定按行操作),并将结果存储在新的'结果'列中。

此方法清晰简洁,易于理解和维护,并且避免了使用np.where带来的潜在性能问题,尤其是在处理大型DataFrame时。 它直接利用Pandas的内置函数,更符合Pandas的编程风格。