Python 3.x Pandas Dataframe:就地列替换与使用转换的列创建新的Dataframe
每当我想要转换数据帧的现有列时,我倾向于使用Python 3.x Pandas Dataframe:就地列替换与使用转换的列创建新的Dataframe,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,每当我想要转换数据帧的现有列时,我倾向于使用apply/transform,这会给我一个全新的系列,并且不会修改数据帧中的现有列 假设下面的代码对一列执行操作并返回一个序列 new_col1 = df.col1.apply(...) 在此之后,我有两种在数据帧中替换新系列的方法 修改现有的col1: df.col1=new\u col1 或者使用转换的列创建新的数据帧: df.drop(columns=[col1]).join(new\u col1) 我这样问是因为每当我在类似python
apply/transform
,这会给我一个全新的系列,并且不会修改数据帧中的现有列
假设下面的代码对一列执行操作并返回一个序列
new_col1 = df.col1.apply(...)
在此之后,我有两种在数据帧中替换新系列的方法
col1
:
df.col1=new\u col1
df.drop(columns=[col1]).join(new\u col1)
对于熊猫数据帧,采用这种样式有什么好处吗?什么更具python风格?您推荐上述两种方法中的哪一种?由于您要修改现有列,第一种方法会更快。请记住,
drop
和join
都会返回新数据的副本,因此,如果您有一个包含许多列的大数据框,那么第二种方法可能会很昂贵。每当您想对原始数据框本身进行更改时,考虑在- 与名称所暗示的相反,inplace通常不会阻止副本的创建,而且(几乎)从未提供任何性能优势
- inplace不使用方法链接
- inplace是初学者常见的陷阱,因此删除此选项将简化API 资料来源: