pandas 的apply返回多列,並賦值

轉載他人的,本來自己想寫,算了

import pandas as pd
df_tmp = pd.DataFrame([
    {"a":"data1", "cnt":100},{"a":"data2", "cnt":200},
])
df_tmp
a	cnt
data1	100
data2	200
方法一:使用apply 的參數result_type 來處理
def formatrow(row):
    a = row["a"] + str(row["cnt"])
    b = str(row["cnt"]) + row["a"]
    return a, b 

df_tmp[["fomat1", "format2"]] = df_tmp.apply(formatrow, axis=1, result_type="expand")
df_tmp
a	cnt	fomat1	format2
data1	100	data1100	100data1
data2	200	data2200	200data2
方法一:使用zip打包返回結果來處理
df_tmp["fomat1-1"], df_tmp["format2-2"] = zip(*df_tmp.apply(formatrow, axis=1))
df_tmp
a	cnt	fomat1	format2	fomat1-1	format2-2
data1	100	data1100	100data1	data1100	100data1
data2	200	data2200	200data2	data2200	200data2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章