您可以使用GROUPBY尺寸的事實:
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
該工程!你能否也建議我是否可以將nofollow和javascript分組在一起?例如。通過添加計數 –
我會在最後添加那些cols然後刪除它們,你可以用res ['dontfollow'] = res.pop('javascript')+ res.pop('nofollow')非常整齊地做到這一點。 –
非常感謝您的建議! –