为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据条件对数据框中的列进行交叉表?

如何根据条件对数据框中的列进行交叉表?

杨魅力 2022-03-05 15:27:15
我经常需要交叉表来对我的数据进行预分析。我可以生成一个基本的交叉表,pd.crosstab(df['column'], df['column'])但无法添加一个 crition(逻辑表达式),将这个交叉表过滤到我的数据框的一个子集。我已经pd.crosstab(df['health'], df['money']) if df['year']==1988为 if 尝试了几个职位。我希望它很容易解决,但我对 Python 和 Pandas 比较陌生。import pandas as pddf = pd.DataFrame({'year': ['1988', '1988', '1988', '1988', '1989', '1989', '1989', '1989'],                   'health': ['2', '2', '3', '1', '3', '5', '2', '1'],                   'money': ['5', '7', '8', '8', '3', '3', '7', '8']}).astype(int)# cross table for 1988 and 1999pd.crosstab(df['health'], df['money'])
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

boolean indexing按之前过滤crosstab:


df1 = df[df['year']==1988]

df2 = pd.crosstab(df1['health'], df1['money'])

编辑:您可以分别过滤每一列:


mask = df['year']==1988

df2 = pd.crosstab(df.loc[mask, 'health'], df.loc[mask, 'money'])


查看完整回答
反对 回复 2022-03-05
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信