数据帧中.map(str)和.astype(str)之间的区别是什么

时间:2018-06-10 10:53:32

标签: python pandas dataframe

我有一个数据框,列名为col1,整数类型为col2。我想加入col1的条目与col2以及中间的'。'(点)。我搜索过并发现添加了两个列条目:

execve()

并添加一个点:

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

但我想要这样的东西

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

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

1 个答案:

答案 0 :(得分:3)

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

astype是DataFrames的Pandas函数(以及numpy数组的numpy),它会将对象强制转换为指定的类型,因此它在实际上没什么区别,除了它可能更高效,因为它只有1个操作与多次调用相比,它在Pandas中本地定义。时间 - 验证。需要注意的是:astype强制转换以及map也会创建一个新对象,而不会改变现有对象。