Df1:
Name Emp_Id Desgn Salary
0 Rick F912-1 Engg 4500
1 Monty 56Df1 Doc 6700
2 Chris J45-12 Arch2 7800.0
3 Julie Klgi Engg-A KL00
4 Mashy1 5670 Law_y 4100.0
Df2:
COL_NAME DATATYPE
Name string
EMP_Id AlphaNum
Design string
Salary Floatorint
如何在dataframe上循环检查值datatype是否有效? 我想检查每个列的值数据类型是否与df2数据类型信息有关,并返回false数据类型值。对于示例字符串列应包含字符串(无数字),字母数字数据类型必须是至少1个数字和1个字母的组合。你知道吗
输出:
Col_name value dtype Row_Num
Name Mashy1 string 4
Emp_Id Klgi AlphaNum 3
Emp_Id 5670 AlphaNum 4
Design Arch2 string 2
Salary KL00 Floatorint 3
这里有一个正则表达式的解决方案。 首先,创建regex模式并将预编译regex对象的“match”方法放入df2:
然后从它们中创建一个dict并将其用于转换df1:
格式匹配,并添加“数据类型”列:
注意:您也可以在df2.rx中使用非regex函数。你知道吗
虽然可以使用regex解决这个问题,但我选择了Python解决方案,借用了here。你知道吗
首先是一个helper函数,用于确定字符串是否包含数字。你知道吗
第二,一个将对象分类为指定类型的函数。你知道吗
注意这里的边缘情况,
int
或float
被转换成字符串。”5”是字母数字。你知道吗让我们做一个数据帧,把任何可以转换成数字的东西,转换成一个数字:
输出:
现在,让我们
melt
将这个数据帧转换成您请求的格式,并应用我们的自定义函数。你知道吗输出:
这里的大部分工作是编写(破解)一个自定义函数来确定数据类型。我真的建议坚持使用内置类型,无论是纯Python还是
numpy
。如果某个东西是字符串,那么你可以做进一步的分析。你知道吗相关问题 更多 >
编程相关推荐