【问题标题】:what is difference between .map(str) and .astype(str) in dataframe数据框中的 .map(str) 和 .astype(str) 有什么区别
【发布时间】:2018-11-19 19:56:11
【问题描述】:

我有一个列名为 col1 和 col2 的整数类型条目的数据框。我想将 col1 的条目与 col2 以及中间的 '.'(dot) 连接起来。我已经搜索并发现添加了两个列条目:

df['col'] = df['col1'].map(str) + df['col2'].map(str)

并添加一个点:

df['col'] = df['col1'].astype(str) + '.'

但我想要这样的东西

df['col'] = each entries of df['col1'] + '.' + each entries of df['col2']

.map(str) 和 .astype(str) 有什么区别。哪个适合我的情况。

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

map 将获取原始列表的每个元素并应用函数或 lambda 表达式。在这个紧凑的形式中,你的函数是str()。它有更多的应用程序。例如,您可以编辑返回新列表的每个元素。这是可能的,因为 DataFrame 单元格可以转换为字符串。

astype 是用于 DataFrames 的 Pandas 函数(以及用于 numpy 数组的 numpy),它将对象转换为指定的类型,因此在这里它几乎没有什么实际区别,除了它可能更高性能,因为它只是 1 操作相比多次调用,它在 Pandas 中原生定义。验证时间。需要注意的是:astype 演员表和map 一样,会创建一个新对象,而不是改变现有对象。

【讨论】:

  • 感谢阿特森。我是否正确地说,如果我使用 .map(str),我会得到低性能,但如果我使用 .astype(str),我会变得相对好,因为后者只是一个操作?
  • 请定时docs.python.org/2/library/timeit.html 并验证。无论如何,性能绝对不是这里的区别。 map 更通用且非 pandas 特定... astype 只能用于执行类型转换
猜你喜欢
  • 2015-07-17
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 2022-12-10
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多