如果索引在3个外部列表之一中,如何根据条件计算tfidf向量的平均值?

时间:2018-12-03 16:44:16

标签: python pandas tf-idf

我正在尝试通过将索引位于3个列表之一中并计算出groupedby行的平均值来对tfidf-vector(熊猫数据帧的行)进行分组的方法。 情况:

list_A = [1,2,3]
list_B = [4,5]
list_C = [6]

pandas.DataFrame:
id     word1     word2     word3
1      0.01      0.00      0.00 
2      0.00      0.01      0.01
3      0.01      0.01      0.00
4      0.01      0.01      0.01
5      0.01      0.00      0.01
6      0.00      0.01      0.01

我无法使用pandas.DataFrame.groupby()函数,现在我有点迷路了。

1 个答案:

答案 0 :(得分:1)

您可以通过索引三个列表并将其分组来设置具有唯一标识符的新列:

df.loc[list_A, "class"] = "A"
df.loc[list_B, "class"] = "B"
df.loc[list_C, "class"] = "C"
df
#     word1  word2  word3 class
# id                           
# 1    0.01   0.00   0.00     A
# 2    0.00   0.01   0.01     A
# 3    0.01   0.01   0.00     A
# 4    0.01   0.01   0.01     B
# 5    0.01   0.00   0.01     B
# 6    0.00   0.01   0.01     C

df.groupby("class").mean()
#           word1     word2     word3
# class                              
# A      0.006667  0.006667  0.003333
# B      0.010000  0.005000  0.010000
# C      0.000000  0.010000  0.010000

请注意,这假设id是数据框的索引,并且列表包含索引中的值(在您的示例中似乎就是这种情况)。