我需要将 1 列值拆分为 3 列。
df['Campaign name']
0 US_FEMALE_20to30
1 US_MIX_35to45
2 US_FEMALE_20to30
3 US_MIX_35to45
4 US_MALE_30to35
5 US_MIX_35to45
所以最后会是这样
region gender age
0 US FEMALE 20to30
1 US MIX 35to45
2 US FEMALE 20to30
3 US MIX 35to45
4 US MALE 30to35
5 US MIX 35to45
非常感谢
答案 0 :(得分:1)
使用 str.split 函数。
在 str.split 中,你使用
然后您在 df 中创建这些列,如下所示
# new data frame with split value columns
new = df["Campaign_name"].str.split("_", n = 2, expand = True)
# making separate columns from new data frame
df["region"]= new[0]
df["gender"]= new[1]
df["age"]= new[2]
使用 df.head() 输出
Campaign_name region gender age
0 US_FEMALE_20to30 US FEMALE 20to30
1 US_MIX_35to45 US MIX 35to45
2 US_FEMALE_20to30 US FEMALE 20to30
3 US_MIX_35to45 US MIX 35to45
4 US_MALE_30to35 US MALE 30to35
答案 1 :(得分:0)
pandas.Series.str.extract
也是一个不错的选择:
df['Campaign name'].str.extract('(?P<region>.*)_(?P<gender>.*)_(?P<age>.*)')
输出:
region gender age
0 US FEMALE 20to30
1 US MIX 35to45
2 US FEMALE 20to30
3 US MIX 35to45
4 US MALE 30to35
5 US MIX 35to45