我有一个大数据集(大约2 GB excel),为此我需要从一列中创建多个列。我得到的结果,但它是花费太多的时间来产生新的列。也有很多次我得到一个记忆错误。有没有其他有效的方法来达到我想要的结果?如果可能的话,请帮助我。代码示例如下:以pd方式导入pandas
data = {'product_name': ['laptop-active', 'printer-active', 'tablet-active', 'desk-passive', 'chair-passive'],
'price': [1200, 150, 300, 450, 200]
}
df = pd.DataFrame(data)
print (df)
def namefun(s):
y=s.split("-")
return y[0],y[1]
df[['A','B']]=df.apply(
lambda row: pd.Series(namefun(row['product_name'])), axis=1)
您可以使用str.split
并使用expand
参数创建多个列:
df[['A','B']] = df['product_name'].str.split('-', n=1, expand=True)
输出: product_name price A B
0 laptop-active 1200 laptop active
1 printer-active 150 printer active
2 tablet-active 300 tablet active
3 desk-passive 450 desk passive
4 chair-passive 200 chair passive