Python 熊猫:按列分组并计算重复次数
我从另一个数据帧获取数据帧时遇到一些问题 总而言之,我有一个数据框架:Python 熊猫:按列分组并计算重复次数,python,pandas,group-by,Python,Pandas,Group By,我从另一个数据帧获取数据帧时遇到一些问题 总而言之,我有一个数据框架: Word | ... | ... | Code w1 | ... | ... | 1234 w1 | ... | ... | 2345 ... w1 | ... | ... | 5678 w2 | ... | ... | 5678 w2 | ... | ... | 1234 ... wXX | ... | ... | YYYY 我想从这个数据帧中获得一个新的数据帧,如下所示: Code | w1 | w
Word | ... | ... | Code
w1 | ... | ... | 1234
w1 | ... | ... | 2345
...
w1 | ... | ... | 5678
w2 | ... | ... | 5678
w2 | ... | ... | 1234
...
wXX | ... | ... | YYYY
我想从这个数据帧中获得一个新的数据帧,如下所示:
Code | w1 | w2 | w3 ...
1234 | #w1 | #w2 | #w3 ...
2345 | #w1 | #w2 | #w3 ...
也就是说,一个新的df,其索引是代码,其列由每个单词标记。在每一行中,我想计算一个单词有多少次确定的代码。有什么办法吗?我一直在尝试使用groupby,但我被卡住了
任何帮助都将不胜感激:-)您需要使用aggfunc=len
:
print (df)
Word Code
0 w1 1234
1 w1 2345
2 w1 5678
3 w2 5678
4 w2 1234
df = df.pivot_table(index='Code', columns='Word', aggfunc=len)
print (df)
Word w1 w2
Code
1234 1.0 1.0
2345 1.0 NaN
5678 1.0 1.0
如果需要并删除列名(在pandas
0.18.0
中新增):
如果需要将NaN
替换为0
,则添加参数fill\u value=0
:
df = df.pivot_table(index='Code', columns='Word', aggfunc=len, fill_value=0)
.reset_index()
.rename_axis(None, axis=1)
print (df)
Code w1 w2
0 1234 1 1
1 2345 1 0
2 5678 1 1
df = df.pivot_table(index='Code', columns='Word', aggfunc=len, fill_value=0)
.reset_index()
.rename_axis(None, axis=1)
print (df)
Code w1 w2
0 1234 1 1
1 2345 1 0
2 5678 1 1