數據分析過程中,經常會使用Python之對DataFrame的多列數據運用apply函數操作,通過上述操作可以快速綜合多列數據得到相應結果。
如果得到的結果只有一個數,則可以直接賦值到DataFrame中的新字段,但是我在分析過程中往往會遇到,函數結果為元組(例如得到兩個字段),此時需要將結果分別賦值到DataFrame中的兩個新字段,否則需要兩次運用apply函數賦值兩次。經過搜索,可以通過下述方法得到解決。
一、dataframe一次性apply賦值兩列數據
apply運用函數時,增加字段:result_type='expand',示例如下:
![]()
![]()
此時如果想通過函數,同時得到兩列數據,如下函數:

通過如下方法,則可同時得到新增兩列函數
![]()

除了賦值到新的兩列,也可以覆蓋之前擁有的字段,結果如下示例:


同時,如果已經得到了元組形式的字段,也可以通過下列方法,將其賦值到新增的兩列字段中,
二、通過apply(pd.Series)實現將tuple進行分列
df = pd.DataFrame({'a':[1,2], 'b':[(1,2), (3,4)]})

df[['b1', 'b2']] = df['b'].apply(pd.Series)

同樣地,放方向則可以將兩列數據合並為一個元組列,通過apply(tuple)實現將多列合成一列
df['c'] = df[['b1','b2']].apply(tuple,axis=1)

