簡體   English   中英

划分未堆疊數據框的兩列

[英]Dividing two columns of an unstacked dataframe

在熊貓數據框中有兩列

第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()以便可以按計算出的比率進行排序,但是我不知道如何引用結果表的每一列。

我將數據初始化如下:

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.aamy_counts['aa'] 要訪問一行,可以使用my_counts.loc['a']

因此,aa的頻率除以bb就是my_counts['aa'] / my_counts['bb']

現在,如果要對其進行排序,可以執行以下操作:

my_counts.iloc[(my_counts['aa'] / my_counts['bb']).argsort()]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM