Python 每列值的计数类型

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

我试图在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==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
列必须是
对象
,它可以包含任意数量的
类型
。这正是我要找的,我将测试它并返回!