我正在处理一个形状为(55025,12)的数据帧(data)上的python,并且我正在尝试分配一个新列,我的代码是:
data_cat=data.assign(
type0 = lambda dataframe: dataframe['value'].map(lambda x: x>0),
type1= lambda dataframe: dataframe['value'].map(lambda x: x>1,
type2 = lambda dataframe: dataframe['value'].map(lambda x: x>2)
)这需要永远的时间来运行。我如何优化这一点?
谢谢!
发布于 2020-10-20 00:00:43
您可以直接在原始数据帧上创建新列,以避免复制数据,如果这不会造成伤害的话。
data["type0"] = data["value"].gt(0)
data["type1"] = data["value"].gt(1)
...除此之外,assign也没问题
data_cat = data.assign(
type0=data["value"].gt(0),
type1=data["value"].gt(1),
...
)另请参阅pandas accessors,了解其他一些可能已经在pandas中实现的常见操作。
https://stackoverflow.com/questions/64430595
复制相似问题