【发布时间】:2019-02-15 15:49:14
【问题描述】:
我有以下主题文档概率矩阵的数据框,第一行是文本文件的名称。
1 2 ... 80 81
0 778.txt 856.txt ... 831.txt 850.txt
1 0.002735042735042732 0.0054700854700846634 ... 0.01641025640567632 4.2490294446698094e-09
2 2.146512500161246e-28 8.006312700113502e-16 ... 4.580074538571013e-12 0.02017093592191074
其中第 0 列的值为 (0.0, 1.0) 分别代表主题 1 和 2 的索引。对每一列进行排序后(递减)
def rank_topics_by_probability(self):
df = df.astype(float)
df2 = pd.DataFrame(-np.sort(-df, axis=0), columns=df.columns, index=df.index)
return df2
我得到以下输出
0 1 2 3 4 ... 77 78 79 80 81
1 1.0 2.735043e-03 0.004329 6.837607e-04 0.010396 ... 0.005399 1.367521e-02 1.641026e-02 1.641023e-02 2.017094e-02
2 0.0 9.941665e-23 0.001141 1.915713e-20 0.000202 ... 0.000071 6.475626e-10 1.816478e-12 2.494897e-08 1.366020e-10
我想为每个文档显示主题-文档等级矩阵,例如
id topic-rank
778 1, 0
856 1, 0
835 0, 1
786 0, 1
...
831 0, 1
850 1, 0
对于 id 为 1 的文档,我分配了 1、0,因为主题 2 的概率大于主题 1,依此类推。 这样做的方法是什么? 已编辑问题的示例数据,这些只是数据框的 head() 值。
id text
0 15623 Y:\n1. Ran preliminary experiments to set para...
1 15625 Scrum Minutes- Hersheys\nPresent: Eyob, Masres...
2 15627 Present: Eyob, Masresha, Zelalem\nhersheys:\n...
3 15628 **********************************************...
4 15629 Scrum Minutes- Hersheys\nPresent: Eyob, Masres...
【问题讨论】:
标签: python pandas dataframe ranking