从pandas列中提取对象属性

时间:2018-05-23 18:18:42

标签: python pandas object dataframe

我正在使用Python FinTS库以MT940格式从银行获取我的帐户对帐单,并使用pandas进一步处理它。但是,amount列不是float,而是MT940库量对象,其中包含实际金额和货币(参见http://mt940.readthedocs.io/en/latest/mt940.html)。

0       <-7.99 EUR>
1      <-22.12 EUR>
2      <-66.19 EUR>
3      <-11.49 EUR>

如何访问这些对象的金额组件?我的工作但完全是unpythonic的方法是将它们转换为str并在将其投入浮动之前将其分割出来。

1 个答案:

答案 0 :(得分:3)

map + operator.attrgetter

使用map可调用来调用operator.attrgetter。这简洁明了。

from operator import attrgetter
df['amount'] = df['column'].map(attrgetter('amount'))

列表理解

这是另一个强大的选择,并且速度很快。

df['amount'] = [x.amount for x in df['column'].tolist()]