我正在尝试根据确定正在迭代的当前列是字母数字、字母还是数字,将列添加到布尔值的数据框中。不幸的是,对于每个布尔测试,每一列都给出了 False。目标是对于给定的列,如何添加另一列来显示给定列中的行是否是字母数字?我不想遍历列中的每一行,因为这非常耗时。我需要这样做,因为可能存在我不知道给定列中将包含什么数据类型的情况。
def add_numeric_alpha_alphanum_tests(dataframe, dataframe_column_names):
for column_name in dataframe_column_names:
column_name_is_alphanumeric = column_name + "_is_alphanumeric"
data_to_test = str(dataframe[column_name].values)
dataframe[column_name_is_alphanumeric] = np.where(data_to_test.isalnum(), True, False)
column_name_is_alpha = column_name + "_is_alpha"
dataframe[column_name_is_alpha] = np.where(data_to_test.isalpha(), True, False)
column_name_is_digit = column_name + "_is_digit"
dataframe[column_name_is_digit] = np.where(data_to_test.isdigit(), True, False)
return dataframe