我有一个看起来像这样的数据框。
我想创建一个名为“Name_Type”的新列,返回如下内容:
我想检查 Name 列是否为字符串。我将对 Age 执行相同操作,检查它是否为浮点数。
我希望这对你的情况有用:
df = pd.DataFrame({'Name':['John', 'Alice', 'Pam', 203921], 'Age':[20.5, 39.1, 41.0, 'Hope']}) df['Name_Type'] = [True if type(x) == str else False for x in df.Name] df['Age_Type'] = [True if type(x) == float else False for x in df.Age] print(df)
结果:
Name Age Name_Type Age_Type 0 John 20.5 True True 1 Alice 39.1 True True 2 Pam 41.0 True True 3 203921 Hope False False
当所有值都是字符串时,此解决方案应该有效:
df = pd.DataFrame({'Name':['John', 'Alice', 'Pam', '203921'], 'Age':['20.5', '39.1', '41.0', 'Hope']}) def is_float(x): try: float(x) return True except: return False df['Name_Type'] = ~df.Name.str.isnumeric() df['Age_Type'] = df.Age.apply(is_float)