在大数据框架中从单个列创建多个列



我有一个大数据集(大约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

最新更新