我有一个数据框,列名为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)之间的区别是什么。哪个适合我的情况。
答案 0 :(得分:3)
map
将获取原始列表的每个元素并应用函数或lambda表达式。在这种紧凑的形式中,您的功能是str()
。它有更多的应用程序。例如,您可以编辑返回新列表的每个元素。这是可能的,因为DataFrame单元可以转换为字符串。
astype
是DataFrames的Pandas函数(以及numpy数组的numpy),它会将对象强制转换为指定的类型,因此它在实际上没什么区别,除了它可能更高效,因为它只有1个操作与多次调用相比,它在Pandas中本地定义。时间 - 验证。需要注意的是:astype
强制转换以及map
也会创建一个新对象,而不会改变现有对象。