如果索引在 3 个外部列表之一中,如何根据条件计算 tfidf 向量的平均值?
How does one calculate the mean of tfidf-vectors by the condition if the index is in one of 3 external lists?
我正在尝试通过索引是否在 3 个列表之一中来实现分组 tfidf 向量(Pandas DataFrame 的行)并计算分组行的平均值。
情况:
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() 函数,现在我有点迷路了。
您可以通过对三个列表进行索引并按其分组来设置具有唯一标识符的新列:
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
是数据框的索引,并且列表包含索引中的值(在您的示例中似乎就是这种情况)。
我正在尝试通过索引是否在 3 个列表之一中来实现分组 tfidf 向量(Pandas DataFrame 的行)并计算分组行的平均值。 情况:
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() 函数,现在我有点迷路了。
您可以通过对三个列表进行索引并按其分组来设置具有唯一标识符的新列:
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
是数据框的索引,并且列表包含索引中的值(在您的示例中似乎就是这种情况)。