我有一个pandas数据框,其中有一列values
,如下所示:
0 16 0
1 7 1 2 0
2 5
3 1
4 18
我希望创建另一列名为
modified_values
,该列包含在分割每个值后将获得的所有不同数字的列表。新列应如下所示:0 [16, 0]
1 [7, 1, 2, 0]
2 [5]
3 [1]
4 [18]
注意:此列表中的值应该是int
,而不是strings
。
我知道的事情:
1)我可以以矢量化的方式拆分列,如下所示:df.values.str.split(" ")
。这将给我列表,但列表内的对象将是字符串。我可以在其上添加另一个操作,如下所示:df.values.str.split(" ").apply(func to convert values to int)
,但那样就不会是矢量化的了。
2)我可以直接这样做:df['modified_values']= df['values'].apply(func that splits as well as converts to int)
第二种方法肯定比第一种慢得多,但我想知道是否可以以矢量化的方式实现相同的效果。
.str
方法在这里很好用”的误解,但或许值得提到的是,结果结构也并不真正符合pandas的标准。 - roganjoshstr
的必要澄清。 - enterMLfor
推导比map
更快。而Numba则快250倍,但存在NaN值。请查看我的回答。 - keiv.flynumba
的结果在技术上是不同的(但实际上更好,因为没有list
)。 - jpp