[英]How to get datatypes of all columns using a single command [ Python - Pandas ]?
[英]How to get datatypes of each row using pandas?
我有一个看起来像这样的数据框。
姓名 | 年龄 |
---|---|
约翰 | 20.5 |
爱丽丝 | 39.1 |
帕姆 | 41.0 |
203921 | 希望 |
我想创建一个名为“Name_Type”的新列,返回如下:
姓名 | 名称_类型 |
---|---|
约翰 | 真的 |
爱丽丝 | 真的 |
帕姆 | 真的 |
203921 | 错误的 |
年龄 | 年龄类型 |
---|---|
20.5 | 真的 |
39.1 | 真的 |
41.0 | 真的 |
希望 | 错误的 |
我想检查名称列是否为字符串。 我会为 Age 做同样的事情,检查它是否是 FLOAT。
我希望这适用于您的情况:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.