我试图在Pandas中获得一些类型函数,这可以帮助我找到每列有多少字符串和整数。
示例:
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')然后......,并使用一个计数器,但我想它会逐个元素并且效率极低。
答案 0 :(得分:2)
设置
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_counts
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