python - 从 pandas 列中提取对象属性

标签 python pandas object dataframe

我正在使用 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/

相关文章:

python - Pandas :删除非整数数据

python - 使用 DataFrame 绘制双轴图

php - 在 PHP 中,如何访问对象中的 ":private"数组?

javascript - 如何将对象转换为排序数组?

python - 将系列元素转换为 int

python - 为什么 dropna() 和 Replace() 方法不适用于数据框中丢失的数据?

python - 如何在 TensorFlow 2 中获取 Keras 张量的值?

python-3.x - groupby python 类型错误 : unorderable types: tuple() < str()

python - 如何在 Pandas ,python中加入两个或多个DataFrame

python - 为什么Python2.x中新型类的 "object"父类不写成 "Object"?