如何在熊猫身上做到这一点:
我在单个文本列上有一个函数extract\u text\u features,返回多个输出列。具体来说,该函数返回6个值
该函数可以工作,但是似乎没有任何正确的返回类型(pandas DataFrame/numpy array/Python list),因此可以正确分配输出df.ix[:,10:16]=df.textcol.map(extract\u text\u features)
因此,我认为我需要回到使用df.iterrows()进行迭代,如下所示
更新:
使用df.iterrows()进行迭代至少要慢20倍,因此我放弃并将函数分成六个不同的.map(lambda…调用)
更新2:这个问题在v0.11.0前后被问回。因此,大部分问题和答案都不太相关
我通常使用zip:
>&燃气轮机&燃气轮机;df=pd.DataFrame([[i]表示范围(10)中的i),列=['num'])
&燃气轮机&燃气轮机&燃气轮机;df
号码
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
&燃气轮机&燃气轮机&燃气轮机;def功率(x):
&燃气轮机&燃气轮机&燃气轮机;返回x,x**2,x**3,x**4,x**5,x**6
&燃气轮机&燃气轮机&燃气轮机;测向['p1'],测向['p2'],测向['p3'],测向['p4'],测向['p5'],测向['p6']=\
&燃气轮机&燃气轮机&燃气轮机;zip(*df['num'].map(幂))
&燃气轮机&燃气轮机&燃气轮机;df
数量p1 p2 p3 p4 p5 p6
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
2 2 2 4 8 16 32 64
3 3 3 9 27 81 243 729
4 4 4 16 64 256 1024 4096
5 5 5 25 125 625 3125 15625
6 6 6 36 216 1296 7776 46656
7 7 7 49 343 2401 16807 117649
8 8 8 64 512 4096 32768 262144
9 9 9 81 729 6561 59049 531441