我正在使用 Python FinTS 库从银行获取 MT940 格式的账户对账单,并使用 pandas
进一步处理它。然而,金额列不是 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>
如何访问这些对象的金额部分?我的工作但完全不Pythonic的方法是将它们转换为str并在将其再次转换为 float 之前将其切片。
最佳答案
map
+ operator.attrgetter
使用 operator.attrgetter
可调用函数调用 map
。这是简短而简洁的。
from operator import attrgetter
df['amount'] = df['column'].map(attrgetter('amount'))
列表理解
这是另一个强大的替代方案,而且速度很快。
df['amount'] = [x.amount for x in df['column'].tolist()]
关于python - 从 pandas 列中提取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50494976/