我在pandas数据框中有两列。
第1列是ed并包含字符串(例如'a','a','b,'c','c','a')
ed column = ['a','a','b','c','c','a']
第2列是作业并且还包含字符串(例如'aa','bb','aa','aa','bb','cc')
job column = ['aa','bb','aa','aa','bb','cc'] #these are example values from column 2 of my pandas data frame
然后我生成一个两列频率表,如下所示:
my_counts= pdata.groupby(['ed','job']).size().unstack().fillna(0)
现在,我如何将一列中的频率除以该频率表的另一列中的频率?我想采用该比率并将其用于argsort()
,以便我可以按计算的比率排序,但我不知道如何引用结果表的每一列。
答案 0 :(得分:0)
我按如下方式初始化数据:
ed_col = ['a','a','b','c','c','a']
job_col = ['aa','bb','aa','aa','bb','cc']
pdata = pd.DataFrame({'ed':ed_col, 'job':job_col})
my_counts= pdata.groupby(['ed','job']).size().unstack().fillna(0)
现在my_counts看起来像这样:
job aa bb cc
ed
a 1 1 1
b 1 0 0
c 1 1 0
要访问列,您可以使用my_counts.aa
或my_counts['aa']
。
要访问某行,您可以使用my_counts.loc['a']
。
因此aa除以bb的频率为my_counts['aa'] / my_counts['bb']
现在,如果你想对它进行排序,你可以这样做:
my_counts.iloc[(my_counts['aa'] / my_counts['bb']).argsort()]