我有一个像这样的原始专栏:在此处输入图像描述
变体标签
XL / 白色
黑色/S
白色/S
L/白色
X/黑色
黑色/XL
白色/M
黑色/M
黑色/M
黑色/L XL / 白色
我想将其分成两列:颜色和尺寸 在此处输入图像描述
颜色尺寸
白色XL
黑色S
白色L
黑X ...
你可以使用这样的东西:
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']])
这里:
sizes
列表包含可能的尺寸值。如果需要,您可以扩展此列表。split_variant_label
函数将variant_label分割成多个部分,然后通过检查尺寸列表来识别尺寸和颜色。apply()
方法用于将自定义函数应用到variant_label列的每一行。