【问题标题】:Counting in pandas and assigning output to a variable在 pandas 中计数并将输出分配给变量
【发布时间】:2018-12-16 05:09:15
【问题描述】:

我对 python 和 pandas 还很陌生,所以如果这是一个有点基本的问题,请原谅我。我正在从 csv 文件中读取一些数据,我想从“M”、“F”和 NaN 的“性别”列中进行统计。下面的代码输出如下:

    import pandas as pd
    import numpy as np

    df = pd.read_csv("....csv")
    count = pd.value_counts(df['gender'],dropna=False)

这个输出:

    M      22
    F       3
    NaN     1

但是,我不想仅仅将这些视为一个计数,我希望将这些值分配给变量。 IE。有

    male = pd.value_counts(df['gender'],'M',dropna=False)

或类似的东西,给男性= 22(女性和南也一样),但是我找不到使用熊猫的明显方法。 有什么建议吗?非常感谢!

【问题讨论】:

  • 我怎么称呼计数?据我所知,它不是熊猫的一部分,如果我不包含库,它会说“未定义名称'count'”?
  • 好吧...你得到像count = df['gender'].value_counts(dropna=False)这样的计数......然后你得到一个序列,其索引是键,值是计数......然后你可以通过@访问单个值比如987654325@...
  • 那么您已经拥有但指出您可以使用[] 语法来访问这些值...
  • 啊,明白了!非常感谢您的帮助。
  • 知道如何以同样的方式列出 NaN 值吗?我得到:文件“/usr...python2.7/dist-packages/pandas/core/indexes/base.py”,第 3132 行,在 get_value raise e1 KeyError: 'NaN' error when I try to do the same for count['NaN'] 还是 count [' ']?

标签: python pandas


【解决方案1】:

在这个例子中,我们采用== "male"过滤的gender系列计数

import pandas as pd
import random
df = pd.DataFrame({'gender': [random.choice(['male', 'female']) for x in range(100)]})
count_men = df[df["gender"] == "male"].count()
count_men

如果你只想要整数,你可以把它作为第零值:

count_men = df[df["gender"] == "male"].count()[0]

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多