【问题标题】:Assign dictionary mapping labels to index values to a column in pandas将字典映射标签分配给 pandas 中列的索引值
【发布时间】:2019-08-23 02:13:21
【问题描述】:

我想使用“cluster1”字典来填充一个名为Cluster 的空pandas series

关于数据的一些背景:

data.StringTogeth1
print(type(data.StringTogeth1))
print(type(data.StringTogeth1[0]))

输出:

    0                      love dog cute think
    1                           dog look weird
    2                  think look like cupacak
    3    want snowman thank jerk grrr make mad
    4        hey know time babi shark dodododo
    5                               dog awesom

    Name: StringTogeth1, dtype: object


<class 'pandas.core.series.Series'>
<class 'str'>

输入:

nclusters1 = 4
clusters1 = cluster_sentences(data.StringTogeth1, nclusters1)
data['Cluster'] = pd.Series()


print(clusters1)

输出:

{1: [0, 2], 2: [1, 5], 0: [3], 3: [4]}

所以clusters1 转换为

{cluster number: [index from series,index from series], etc..}

所以数据框应该是这样的:

    Id  StringTogeth1                           Cluster
0   1   love dog cute think                     1
1   2   dog look weird                          2
2   3   think look like cupacak                 1
3   4   want snowman thank jerk grrr make mad   0
4   5   hey know time babi shark dodododo       3
5   6   dog awesom                              2

【问题讨论】:

    标签: python pandas dictionary series


    【解决方案1】:

    IIUC,您可以将clusters1 展平和反转,然后将其分配回去:

    df['Clusters'] = pd.Series({v: k for k, V in clusters1.items() for v in V})
    df
    
       Id                          StringTogeth1  Clusters
    0   0                    love dog cute think         1
    1   1                         dog look weird         2
    2   2                think look like cupacak         1
    3   3  want snowman thank jerk grrr make mad         0
    4   4      hey know time babi shark dodododo         3
    5   5                             dog awesom         2
    

    在哪里,

    {v: k for k, V in clusters1.items() for v in V}
    # {0: 1, 1: 2, 2: 1, 3: 0, 4: 3, 5: 2}
    

    ...是索引到簇标签的映射。

    专业提示:无需使用空系列初始化列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2018-03-15
      • 2020-09-01
      • 1970-01-01
      相关资源
      最近更新 更多