python ใช้ pandas คำนวณ common size ratio

ลองเอามาใช้งานจริง จะพบว่า ไม่ง่ายเลย ที่จะแทน excel ยกตัวอย่าง การคำนวณ common size ratio ซึ่งเบสิก แต่พอทำด้วย pandas แล้วไม่ง่ายเลยครับ พอจะมีวิธีอย่างไรบ้างที่ไม่ต้องมาคำนวณ วนลูปทีละเซล อยากให้ออก % แบบคอลัมน์สุดท้ายครับ


sample_data=[['major sale',98],['total sale', 100],['cost of good sold',60],['selling exp',3],['admin',10]]
fin = pd.DataFrame(sample_data,columns=['Desc','THB'])

def commonratio( cellvalue, basevalue):
    return cellvalue/basevalue

fin['common'] = fin['THB'].apply(commonratio)

TypeError: commonratio() missing 1 required positional argument: 'basevalue'

จึงขอรบกวน สอบถามว่าต้องเขียนยังไงครับ? ขอบคุณครับ
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 4
fin['basevalue'] = [100,100,1000,1000,1000]
fin['common'] = fin.apply(lambda row: commonratio(row['THB'], row['basevalue']), axis=1 )
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่