拆分和排列熊猫列

问题描述 投票:0回答:1

我有一个像这样的原始专栏:在此处输入图像描述

变体标签

XL / 白色

黑色/S

白色/S

L/白色

X/黑色

黑色/XL

白色/M

黑色/M

黑色/M

黑色/L XL / 白色

我想将其分成两列:颜色和尺寸 在此处输入图像描述

颜色尺寸

白色XL

黑色S

白色L

黑X ...

split
1个回答
0
投票

你可以使用这样的东西:

import pandas as pd

# Sample data
data = {'variant_label': ['XL / White', 'Black/ S', 'White / S', 'L/ White', 'X/ Black', 
                          'Black / XL', 'White / M', 'Black / M', 'Black / M', 'Black / L', 'XL / White']}

# Creating a DataFrame
df = pd.DataFrame(data)

# Define possible size values
sizes = ['XS', 'S', 'M', 'L', 'XL', 'XXL', 'X', 'XX', 'XXX']

# Function to determine size and color
def split_variant_label(label):
    parts = [part.strip() for part in label.split('/')]
    size = next((part for part in parts if part in sizes), None)
    color = next((part for part in parts if part not in sizes), None)
    return pd.Series([color, size])

# Apply the function to the DataFrame
df[['Color', 'Size']] = df['variant_label'].apply(split_variant_label)

# Display the result
print(df[['Color', 'Size']])

这里:

  1. 可能的尺寸:
    sizes
    列表包含可能的尺寸值。如果需要,您可以扩展此列表。
  2. 自定义函数:
    split_variant_label
    函数将variant_label分割成多个部分,然后通过检查尺寸列表来识别尺寸和颜色。
  3. 应用函数:
    apply()
    方法用于将自定义函数应用到variant_label列的每一行。
© www.soinside.com 2019 - 2024. All rights reserved.