我想提取電子郵件活動的類型、月份和年份。列中的值campaign是字符串。我應用了 split 方法,然后嘗試使用映射函數將信息提取到不同的列。我不知道為什么映射提取失敗campaign_month。emailClick_df['campaign_info']?=?emailClick_df['campaign'].str.split('-')
emailClick_df['campaign_type']?=?emailClick_df['campaign_info'].map(lambda?x:x[0])
emailClick_df['campaign_month']?=?emailClick_df['campaign_info'].map(lambda?x:x[1])
emailClick_df['campaign_year']?=?emailClick_df['campaign_info'].map(lambda?x:x[2])
1 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
您可以使用expand參數進行拆分,然后一次性設置所有三列:
df[['campaign_type', 'campaign_month', 'campaign_year']] = \
df['campaign'].str.split('-', expand=True)
df
輸出:
campaign campaign_type campaign_month campaign_year
0 Standard-Mar19-2020 Standard Mar19 2020
PS您的錯誤表明某些campaign_info值很可能不在表單中type-month-year,因此沒有拆分為多個字符串的列表,因此嘗試獲取列表中的第二個值失敗。否則你的方法也應該沒問題。您可以使用以下命令找到那些有問題的記錄
df[df['campaign'].str.split('-').str.len() != 3]
添加回答
舉報
0/150
提交
取消