import pandas as pd
我有一个 Dataframe :
df=pd.DataFrame({'cmplxnumbers':[1+1j,2-2j,3*(1+1j)]})
我需要得到列中数字的虚部。
我是这样做的:
df.cmplxnumbers.apply(lambda number: number.imag)
我得到的结果是:
0 1.0
1 -2.0
2 3.0
Name: cmplxnumbers, dtype: float64
这是意料之中的。
有没有更快、更直接的方法,也许不涉及lambda
函数?
2条答案
按热度按时间brc7rcf01#
Pandas DataFrame/Series构建在numpy数组之上,因此它们可以传递给大多数numpy函数。
在这种情况下,您可以尝试执行以下操作,这应该比非矢量化的
.apply
更快:输出:
或者你可以做
agg
:y53ybaqx2#
使用Pandas对象的
.to_numpy()
方法获取NumPy数组,该数组包含real
和imag
字段。请参见here,其中讨论了
.values
、.array
和.to_numpy()
。