当groupby计数多个列时,我得到一个错误.这是我的数据框,也是一个简单标记不同的'b'和'c'组的示例.
df = pd.DataFrame(np.random.randint(0,2,(4,4)),
columns=['a', 'b', 'c', 'd'])
df['gr'] = df.groupby(['b', 'c']).grouper.group_info[0]
print df
a b c d gr
0 0 1 0 0 1
1 1 1 1 0 2
2 0 0 1 0 0
3 1 1 1 1 2
Run Code Online (Sandbox Code Playgroud)
但是,当稍微更改示例以便调用count()而不是grouper.group_info [0]时,会出现错误.
df = pd.DataFrame(np.random.randint(0,2,(4,4)),
columns=['a', 'b', 'c', 'd'])
df['gr'] = df.groupby(['b', 'c']).count()
print df
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-70-a46f632214e1> in <module>()
1 df = pd.DataFrame(np.random.randint(0,2,(4,4)),
2 columns=['a', 'b', 'c', 'd'])
----> 3 df['gr'] …Run Code Online (Sandbox Code Playgroud) 尝试计算数据框中具有类似"种类"的行时:
import pandas as pd
items = [('aaa','aaa text 1'), ('aaa','aaa text 2'), ('aaa','aaa text 3'),
('bb', 'bb text 1'), ('bb', 'bb text 2'), ('bb', 'bb text 3'),
('bb', 'bb text 4'),
('cccc','cccc text 1'), ('cccc','cccc text 2'),
('dd', 'dd text 1'),
('e', 'e text 1'),
('fff', 'fff text 1'),
]
df = pd.DataFrame(items, columns=['kind', 'msg'])
df
kind msg
0 aaa aaa text 1
1 aaa aaa text 2
2 aaa aaa text 3
3 bb bb text 1
4 …Run Code Online (Sandbox Code Playgroud)