Python 每列值的计数类型
我试图在Pandas中获得一些类型函数,它可以帮助我找到每列有多少字符串和int 例如:Python 每列值的计数类型,python,pandas,Python,Pandas,我试图在Pandas中获得一些类型函数,它可以帮助我找到每列有多少字符串和int 例如: A B C D 1 H 3 20 3 5 2 1 2 Y M 你应该给我一些 A B C D int 3 1 2 2 str 0 2 0 1 NA 0 0 1 0 有这样做的函数吗?我想编一些东西,比如:if(A
A B C D
1 H 3 20
3 5 2 1
2 Y M
你应该给我一些
A B C D
int 3 1 2 2
str 0 2 0 1
NA 0 0 1 0
有这样做的函数吗?我想编一些东西,比如:if(A==int'A'),然后…,并使用计数器,但我想它会一个元素一个元素地运行,效率会非常低。设置
df = pd.DataFrame(dict(
A=[1, 3, 2],
B=['H', 5, 'Y'],
C=[3, 2, None],
D=[20, 1, 'M']
), dtype=object)
df
A B C D
0 1 H 3 20
1 3 5 2 1
2 2 Y None M
解决方案
将
pd.DataFrame.applymap
与type
和pd.value\u计数一起使用
df.applymap(type).apply(pd.value_counts).fillna(0, downcast='infer')
A B C D
<class 'int'> 3 1 2 2
<class 'str'> 0 2 0 1
<class 'NoneType'> 0 0 1 0
df.applymap(type).apply(pd.value\u计数).fillna(0,downcast='infer')
A、B、C、D
3 1 2 2
0 2 0 1
0 0 1 0
@DyZ当然可以dtype
列必须是对象
,它可以包含任意数量的类型
。这正是我要找的,我将测试它并返回!