【发布时间】:2022-01-04 21:37:43
【问题描述】:
鉴于此数据框,
import pandas as pd
d = {'a': ['john', 'mary','john','john','mary','john'], 'b': [1,2,3,1,1,2],
'c': [0.7, 0.3,0.9,0.4,1.0,0.2],'d': [1,0,0,1,0,1]}
df = pd.DataFrame(data=d)
下面一行打印出df['a']=john和df['a']=mary对应df['b']=1,2,3的次数
print(df.groupby('a')['b'].value_counts())
我现在要做的是打印出df['a']=john 和df['a']=mary 在df['b']=1,2,3 对应df['d']=1 或=0 的次数。
比如df['a']=john和df['b']=1,df['d']总是等于1,当df['a']=john和df['b']=3,df['d']=0等时...
以下行打印出全零,我不知道为什么:
print((df['d'])[(df.groupby('a')['b'].value_counts())])
【问题讨论】:
-
df.groupby('a')['b'].value_counts()返回一个仅包含 2 和 1 的系列。df['d'][2]和df['d'][1]都是 0。因此都是零。 -
df.groupby(['a','b','c']).size()
标签: python pandas dataframe pandas-groupby