我有一个包含列名 col1 和 col2 的整数类型条目的数据框。我想将 col1 的条目与 col2 以及两者之间的“.”(点)一起加入。我搜索并发现添加了两列条目:
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) 有什么区别。这适合我的情况。
最佳答案
map
将获取原始列表的每个元素并应用函数或 lambda 表达式。在这种紧凑形式中,您的函数是 str()
。它有更多的应用程序。例如,您可以编辑返回新列表的每个元素。这是可能的,因为 DataFrame 单元格可转换为字符串。
astype
是一个用于 DataFrames 的 Pandas 函数(以及用于 numpy 数组的 numpy),它将对象转换为指定的类型,因此在这里它几乎没有实际区别,除了它可能更高效,因为它是与多个调用相比,只需 1 个操作,并且它是在 Pandas 中本地定义的。计时来验证。需要注意的是:astype
强制转换以及 map
都会创建一个新对象,而不是改变现有对象。
关于python - 数据帧中的.map(str) 和.astype(str) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50782934/