亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用另一個較小的 pandas 數據框過濾 pandas 數據框

如何使用另一個較小的 pandas 數據框過濾 pandas 數據框

米脂 2023-07-11 15:32:26
我有 2 個數據框,第一個看起來像這樣df1:    MONEY    Value0    EUR      8501    USD      7502    CLP        13    DCN        1df2:      Money0      USD1      USD2      USD3      USD4      EGP...    ...25984  USD25985  DCN25986  USD25987  CLP25988  USD我想刪除 df1 中不存在的 df2 的“金錢”值。并添加 df1 中“Value”列的任意列值  Money    Value0      USD      7201      USD      7202      USD      7203      USD      720...    ...25984  USD      72025985  DCN        125986  USD      72025987  CLP        125000  USD      720
查看完整描述

1 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

一步步:

df1.set_index("MONEY")["Value"]

此代碼將列轉換MONEY為Dataframe索引。結果是:


    print(df1)


    MONEY

    EUR    850

    USD    150

    DCN      1

df2["Money"].map(df1.set_index("MONEY")["Value"])

此代碼將 的內容映射df2到df1。這將返回以下內容:


    0    150.0

    1      NaN

    2    850.0

    3      NaN

df2現在我們將前一列分配給名為的新列Value。把它們放在一起:

df2["Value"] = df2["Money"].map(df1.set_index("MONEY")["Value"])

df2現在看起來像:


     Money  Value

    0   USD  150.0

    1   GBP    NaN

    2   EUR  850.0

    3   CLP    NaN

只剩下一件事要做:刪除任何有價值的行NaN:

df2.dropna(inplace=True)

整個代碼示例:


import pandas as pd


# Create df1

x_1 = ["EUR", 850], ["USD", 150], ["DCN", 1]

df1 = pd.DataFrame(x_1, columns=["MONEY", "Value"])


# Create d2

x_2 = "USD", "GBP", "EUR", "CLP"

df2 = pd.DataFrame(x_2, columns=["Money"])


# Create new column in df2 called 'Value'

df2["Value"] = df2["Money"].map(df1.set_index("MONEY")["Value"])

# Drops any rows that have 'NaN' in column 'Value'

df2.dropna(inplace=True)

print(df2)

輸出:


Money  Value

0   USD  150.0

2   EUR  850.0


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號