问题:
从一个文本中提取多个值Pandas 中的文本列并将它们正确分配给新列是一个挑战。
解决方案:
要有效应用向 Pandas 列返回多个值的函数,请使用zip() 函数。与使用 df.iterrows() 进行迭代相比,此解决方案显着提高了性能。
实现:
<code class="python">def powers(x): return x, x**2, x**3, x**4, x**5, x**6 df = pd.DataFrame([[i] for i in range(10)], columns=['num']) df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = \ zip(*df['num'].map(powers))</code>
示例输出:
num | p1 | p2 | p3 | p4 | p5 | p6 |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 2 | 4 | 8 | 16 | 32 | 64 |
3 | 3 | 9 | 27 | 81 | 243 | 729 |
4 | 4 | 16 | 64 | 256 | 1024 | 4096 |
5 | 5 | 25 | 125 | 625 | 3125 | 15625 |
6 | 6 | 36 | 216 | 1296 | 7776 | 46656 |
7 | 7 | 49 | 343 | 2401 | 16807 | 117649 |
8 | 8 | 64 | 512 | 4096 | 32768 | 262144 |
9 | 9 | 81 | 729 | 6561 | 59049 | 531441 |
以上是如何从 Pandas 中的单个文本列高效创建多个新列?的详细内容。更多信息请关注PHP中文网其他相关文章!