我正在尝试通过将索引位于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()函数,现在我有点迷路了。
答案 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
是数据框的索引,并且列表包含索引中的值(在您的示例中似乎就是这种情况)。