python:与 pandas 一起工作。获取计数

标签 python pandas

我的数据集看起来是这样的:

<link>, <type>

例如,类型可以是“dofollow”、“nofollow”和“javascript”。

鉴于每个链接可能在数据集中出现多次,我需要通过以下方式获取结果

link, dofollow, nofollow, javascript
http://somelink.com, 10 (e.g. it appeared 10 times as dofollow), 0, 101

最佳答案

您可以使用分组大小:

In [11]: df = pd.DataFrame([['a_link', 'dofollow'], ['a_link', 'dofollow'], ['a_link', 'nofollow'], ['b_link', 'javascript']], columns=['link', 'type'])

In [12]: df
Out[12]: 
     link        type
0  a_link    dofollow
1  a_link    dofollow
2  a_link    nofollow
3  b_link  javascript

In [13]: df.groupby(['link', 'type']).size()
Out[13]: 
link    type      
a_link  dofollow      2
        nofollow      1
b_link  javascript    1
dtype: int64

现在,您取消堆叠第二层(类型),使其成为一列并填充空白:

In [14]: df.groupby(['link', 'type']).size().unstack(1)
Out[14]: 
type    dofollow  javascript  nofollow
link                                  
a_link         2         NaN         1
b_link       NaN           1       NaN

In [15]: df.groupby(['link', 'type']).size().unstack(1).fillna(0)
Out[15]: 
type    dofollow  javascript  nofollow
link                                  
a_link         2           0         1
b_link         0           1         0

关于python:与 pandas 一起工作。获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22177533/

相关文章:

python - 如何识别数量不断增加且文件名形式相似的文件?

Python Coverage - 不覆盖函数内容,只覆盖定义

python - 比较两个 pandas 数据框中的列并找出差异

python - 从数据帧创建频率字典的字典

python - AWS 上多个 API 之间的共享 Python 库

python - Heroku 返回 "ImportError: No module named fcntl on window"

python - 使用 pySpark 计算月末差异

python - Pandas 旋转数据框和多列 bool 比较

Python Pandas 系列失败日期时间

python - 仅保留 DataFrame 中连续重复行的第一行