攝影或3C

Python如何對DataFrame內容做函式運算? pandas.DataFrame.apply() ; result_broadcast = df.apply(func, axis=1, result_type=’broadcast’)

apply()主要用在

Python: 如何對 pandas.DataFrame 兩欄位運算後,增加到最後一欄?

 

pandas官網對於apply()的說明

(點此或下圖連結官網):

DataFrame.apply(funcaxis=0raw=Falseresult_type=Noneargs=()**kwargs)

主要參數是func跟axis

(若func的參數為df,通常 axis=1, 但預設值是0)

參考此篇: 

Python: 如何對 pandas.DataFrame 兩欄位運算後,增加到最後一欄?

就知道為何axis=1

 

本篇則主要說明result_type

import pandas as pd

df = pd.DataFrame({‘A’: [1, 2, 3],
‘B’: [4, 5, 6],
‘C’: [7, 8, 9]})

“””df:

“””

 

# 將每一row的值乘上2,並返回一個純量(整row乘以2的總和)
# if axis=1
def func(x):
    return (x * 2).sum()
# 1*2+4*2+7*2=24
# 2*2+5*2+8*2=30
# 3*2+6*2+9*2=36

# 使用 result_type=’broadcast’
result_broadcast = df.apply(func, axis=1, result_type=’broadcast’)
print(“result_broadcast:\n”,result_broadcast)

# 使用 result_type=’expand’
result_expand = df.apply(func, axis=1, result_type=’expand’)
print(“\nresult_expand:\n”,result_expand)

result_reduce = df.apply(func, axis=1, result_type=’reduce’)
print(“\nresult_reduce:\n”,result_reduce)
#此範例func返回純量,所以expand, reduce 看不出差別

 

輸出結果:

推薦hahow線上學習python: https://igrape.net/30afN

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

Recent Posts