gpt4 book ai didi

pandas - 如何检查具有多种类型的列中的数据类型? -寻找更好的解决方案

转载 作者:行者123 更新时间:2023-12-02 16:52:34 24 4
gpt4 key购买 nike

数据样本:

a=pd.DataFrame({'Col1':[1,2,'a','b',1.5],'Col2':['a','b','c',2,3],'Col3':['a',1.2,1.3,1.4,2]}))

Col1 Col2 Col3
0 1 a a
1 2 b 1.2
2 a c 1.3
3 b 2 1.4
4 1.5 3 2

如您所见,列中有 strintfloat

我下面的代码是检查类型并计算其中的数量。虽然有点业余,但请看看。

def checkDtype(df='DateFrame',s='Series'):
ListOfType={}
for i in df.columns: #Walk through every columns of DataFrame
ListOfType[i]=dict(Float=0,Int=0,Str=0)
for a in df[i]: #Walk through every row of the selected column
if type(a) is float:
ListOfType[i]['Float']+=1
if type(a) is int:
ListOfType[i]['Int']+=1
if type(a) is str:
ListOfType[i]['Str']+=1
return ListOfType

`

b= checkDtype(df=a)                #The result - put into DataFrame for visual
result=pd.DataFrame(data=[a['Col1'],a['Col2'],a['Col3']],index=['col1','col2','col3'])
result.T

col1 col2 col3
Float 1 0 3
Int 2 2 1
Str 2 3 1

我正在寻找更好的解决方案。

此外,如果有人已经“接触”数据并最终将类型更改为 Int64 或 Int32 等,我认为此应用程序将无法运行。所以请帮我解决这个问题。

最佳答案

尝试:

a.applymap(type).apply(pd.value_counts).fillna(0)

                 Col1  Col2  Col3
<class 'str'> 2 3.0 1
<class 'int'> 2 2.0 1
<class 'float'> 1 0.0 3

关于pandas - 如何检查具有多种类型的列中的数据类型? -寻找更好的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57882212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com