创建新列并放入条件值熊猫数据框

斯瓦蒂圣寺

我有数据框:

 sepallength sepalwidth petallength petalwidth        class   cluster
0         5.1        3.5         1.4        0.2  Iris-setosa  cluster1
1         4.9          3         1.4        0.2  Iris-setosa  cluster1
2         4.7        3.2         1.3        0.2  Iris-setosa  cluster1
3         4.6        3.1         1.5        0.2  Iris-setosa  cluster1
4           5        3.6         1.4        0.2  Iris-setosa  cluster1
5         5.4        3.9         1.7        0.4  Iris-setosa  cluster1
6         4.6        3.4         1.4        0.3  Iris-setosa  cluster1
7           5        3.4         1.5        0.2  Iris-setosa  cluster1
8         4.4        2.9         1.4        0.2  Iris-setosa  cluster1
9         4.9        3.1         1.5        0.1  Iris-setosa  cluster1

和一本字典:

{'cluster2': 'Iris-virginica', 'cluster0': 'Iris-versicolor', 'cluster1': 'Iris-setosa'}

我需要添加另一列,并用df ['cluster'] ==键的字典中的值填充它

我试过使用np.where

def countTruth(df):
    # dictionary mapping cluster to most frequent class

    clustersClass = df.groupby(['cluster'])['class'].agg(lambda x:x.value_counts().index[0]).to_dict()
    for eachKey in clustersClass:
        newv = clustersClass[eachKey]
        print df
        df['new'] = np.where(df['cluster']==eachKey , newv) 

崩溃,提示应同时指定x和y或不指定x和y

我的最终目标是根据聚类和类别标签计算真阳性,真阴性,FP和FN。这是迈向的一步。

埃德·楚姆

调用map并传递命令:

In [326]:

d={'cluster2': 'Iris-virginica', 'cluster0': 'Iris-versicolor', 'cluster1': 'Iris-setosa'}
df['key'] = df['cluster'].map(d)
df
Out[326]:
   sepallength  sepalwidth  petallength  petalwidth        class   cluster  \
0          5.1         3.5          1.4         0.2  Iris-setosa  cluster1   
1          4.9         3.0          1.4         0.2  Iris-setosa  cluster1   
2          4.7         3.2          1.3         0.2  Iris-setosa  cluster1   
3          4.6         3.1          1.5         0.2  Iris-setosa  cluster1   
4          5.0         3.6          1.4         0.2  Iris-setosa  cluster1   
5          5.4         3.9          1.7         0.4  Iris-setosa  cluster1   
6          4.6         3.4          1.4         0.3  Iris-setosa  cluster1   
7          5.0         3.4          1.5         0.2  Iris-setosa  cluster1   
8          4.4         2.9          1.4         0.2  Iris-setosa  cluster1   
9          4.9         3.1          1.5         0.1  Iris-setosa  cluster1   

           key  
0  Iris-setosa  
1  Iris-setosa  
2  Iris-setosa  
3  Iris-setosa  
4  Iris-setosa  
5  Iris-setosa  
6  Iris-setosa  
7  Iris-setosa  
8  Iris-setosa  
9  Iris-setosa  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据熊猫数据框中其他列的条件和值创建新列

基于多个条件语句熊猫数据框创建新列

如何根据条件在熊猫数据框中创建新列?

如何从熊猫数据框的列值创建新行

遍历熊猫数据框并创建新的列值

根据条件根据列的总和值创建新的数据框

从熊猫值计数创建新的数据框

在熊猫数据框中创建新列

基于熊猫数据框中的两列值创建一个新的数据框

从数据透视表条件创建新的熊猫数据框

数据框 - 根据条件创建新列

根据条件在熊猫数据框中添加新列,并替换不同列中的Nan值

熊猫:比较数据框的列并根据条件添加新的列和值

根据一列中的条件创建一个新的熊猫列,并从同一数据框中的多列中分配值

熊猫有条件地创建新的数据框列

根据两个熊猫数据框之间的条件将值分配给新列

熊猫数据框创建新列并填充来自同一df的计算值

熊猫:在多索引数据框中创建新的(子级别)列并分配值

使用数学和现有列在熊猫数据框中创建新值

大熊猫:从现有的列值创建一个新的数据框

如何在遍历熊猫数据框时创建新列和插入行值

熊猫-合并两个数据框,创建新列,将值附加到数组

从熊猫数据框中的唯一行值创建新列

根据另一个熊猫中开始日期和结束日期列的条件创建新的熊猫数据框

从熊猫数据框中的列创建新列

在数据框中创建基于条件和另一列值的新列

根据其他两个数据框列中的值条件创建新列

熊猫按值分组并创建新的数据框?

使用查找值创建新的熊猫数据框