python pandas แปลงค่าจากสกุลเงินStr เป้น float

แบบนี้เรียกว่าอะไรครับ บรรทัดแปลงค่า Currency มันมี 3 บรรทัด และมันก็ไม่ใช่ block แต่มันทำงานได้เลยเรียกไม่ถูก ว่า
เรียกว่าอะไร

import pandas as pd
sample = pd.DataFrame({'id':['ID1','ID2','ID3','ID4'],'Currency':['$1.00','$2,000.00','(3,000.00)','-0']})

sample.info()
print('-'*80)

# ถามบรรทัดนี้ ว่า pd.Series.replace แบบ เว้นแล้วทิ้งจุดเฉย ๆ แบบ บรรทัด 8,9 เรียกว่าอะไรครับ
sample['Currency'] = (sample['Currency'].replace( '[\$,)]','', regex=True )
                        .replace( '[(]','-',   regex=True )
                        .replace('^-$','',regex=True).astype(float))
sample.info()
print('-'*80)
print(sample)

ขอบคุณครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
sample['Currency'] =
    sample['Currency'].replace('[\$,)]','',regex=True)
                      .replace('[(]','-',regex=True)
                      .replace('^-$','',regex=True)
                      .astype(float)

==

sample['Currency'] =
   (
    (
     (
      sample['Currency'].replace('[\$,)]','',regex=True)
     ).replace('[(]','-',regex=True)
    ).replace('^-$','',regex=True)
   ).astype(float)

==

temp1 = sample['Currency'].replace( '[\$,)]','', regex=True )
temp2 = temp1.replace( '[(]','-',   regex=True )
temp3 = temp2.replace('^-$','',regex=True)
sample['Currency'] = temp3.astype(float)

1. method chaining api เป็นสไตล์การเขียน api แบบ functional programming ที่กำลังเป็นที่นิยมครับ
2. สังเกตว่า Series.replace คืนค่าเป็น Series object ใหม่ที่ถูก replace เรียบร้อยแล้ว  จึงต่อท้ายด้วย .replace หรือ .astype ได้เลย
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่