如何遍历数据框,创建新列并在python中为其添加值

sequence_hard

我有以下问题。我有一个包含几列的数据框,其中一列包含字符串作为值。我想遍历此列,更改这些值并将更改后的值保存在新列中。

到目前为止,我编写的代码如下所示:

def get_classes(x):    
    for index, string in df['column'].iteritems():
        listi = string.split(',')
        Classes=[]

        for value in listi:
            count=listi.count(value)
            if count >= 3: 
                Classes.append(value)

        Unique=(',').join(sorted(list(set(Classes))))
        df['NewColumn']=Unique


End.apply(get_classes)

它遍历的行df['column'],在每个行之间拆分字符串,(创建一个名为listi的列表),并创建一个空的list称为类的类。然后,它计算listi中的每个值,如果在列表中至少出现3次,则将其附加到Classes。然后,完成的列表是sortedset(),因此列表中的所有对象都是唯一的,最后再次以逗号连接到字符串。然后,我想将此唯一值列表添加到新列中,该列与更改后的值所源自的行值的索引位置相同。例如:

df
  column    NewColumn
0 A,A,A,C   A 
1 C,B,C,C   C
2 B,B,B,B   B

当我print Unique代替时df['NewColumn']=Unique我的代码似乎运行良好,因为它随后打印了所有转换后的值。但是,如果像我的示例那样执行代码NewColumn,则数据帧的完全用相同的值填充,这似乎与df中最后一行的原始值相对应。有人可以告诉我这里的问题是什么吗?

博维尔上校

您可以使用CounterCollections中的功能强大

from collections import Counter

foo = lambda x: ','.join(sorted([k for k,v in Counter(x).iteritems() if v>=3]))

df['new'] = df['column'].str.split(',').map(foo)


#In [33]: df
#Out[33]:
#    column NewColumn new
#0  A,A,A,C         A   A
#1  C,B,C,C         C   C
#2  B,B,B,B         B   B

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建一个新列并在 R 中为其添加值

如何遍历数据框中的列值,取均值并创建新的数据框?

遍历数据框中的行创建一个新列,然后基于该新列添加更多列

如何遍历数据框中的列

如何在Pandas数据框的新列中添加值?

遍历数据框列表以创建新列

如何遍历数据框中的列并在每次迭代中打印每个值

在pyspark数据框中遍历两列的同时向新列添加值

如何根据 Python 数据框中现有的值向新列添加值?

遍历数据框中的列并在同一图形上绘制(Python)

如何遍历数据集比较相邻的行并在新列中输出结果的关系?

如何遍历 R 数据框中的列并在每次迭代中使用列名创建新数据框?

创建循环遍历数据框中列的函数

如何遍历多个数据框并在python中将值添加到新数据框

创建遍历数据框列的函数

循环遍历数据框并在满足条件时将特定列中的行附加到新列表

如何遍历数据框的行并检查列行中的值是否为NaN

如何在表中创建新列并向其添加值

如何遍历数据框df中的选定列?

如何遍历数据框中的列以搜索特定值?

如何遍历数据框中每列的行

如何汇总日内时间戳并在pandas数据框Python中创建新列

Pyspark:如何遍历数据框列?

遍历数据框中的某些列

遍历数据框中的文本列

如何编写最有效的方法来为数据框python中的列添加值?

Python - 如何遍历数据框列中的列表跳过 nan

遍历python数据框中的列以进行计算并在现有列之间插入新列

如何遍历数据框中的日期?