【问题标题】:count the number of elements of each type in a pandas column计算 pandas 列中每种类型的元素数量
【发布时间】:2020-07-25 19:15:57
【问题描述】:

我是熊猫新手。

我有一个包含浮点数和字符串的对象 dtype 列。

我想计算列中每个的个数。

我想出了一个办法:

len([v for v in list(df["ColumnA"]) if type(v)==float])
len([v for v in list(df["ColumnA"]) if type(v)==str])

但是有没有更直接的方法来做到这一点?

理想情况下,我希望能够执行以下操作:

df["ColumnA"].dtypes

输出如下:

float: 103,544
str:     2,767

【问题讨论】:

    标签: pandas count dtype


    【解决方案1】:

    这行得通:

    df["ColumnA"].apply(type).value_counts()
    
    <class 'str'>        2767
    <class 'float'>    103544
    Name: ColumnA, dtype: int64
    

    【讨论】:

    • 好,你会用这个计数做什么?在同一列中有不同的类型似乎是错误的......
    • 我没有创建文件。我习惯了 R,不知道 pandas 的同一列中可能有不同的类型。我得到了意想不到的结果,现在我知道为什么了。现在,我使用上面的代码来检查列,而不是假设每一列只有一种类型。
    • 我还是不明白最后一行Name: ColumnA, dtype: int64,因为当我运行df.dtypes时,它说的是ColumnA object,所以我不知道int64是从哪里来的。跨度>
    • .value_counts() 的结果是一个序列本身,dtype int64,与 df dtypes 无关
    • 您尝试过df.convert_dtypes() 还是df.ColumnA = df.ColumnA.astype(np.float)?根据您对数据的了解,将整列更改为数字 dtype 可能就足够了
    猜你喜欢
    • 2019-09-30
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2021-03-09
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    相关资源
    最近更新 更多