我正在根據id_number另一個名為的 DataFrame 查找產品df價格,并將每個產品的價格添加到我的df_pairDataFrame 中。我現在正在通過以下方式執行此操作:
df_pair['price_p1'] = df_pair['p1'].progress_apply(lambda x: df[df['id_number'] == x]['price'].iloc[0])
但似乎,它太慢了。有沒有其他更好的解決方案來解決這個問題?我的兩個 DataFrame 示例
df::
| 身份證號碼 | 價錢 | ... |
|---|---|---|
| B0000D9MYM | 12.5 | |
| B0000D9MYL | 25.26 | |
| B00ADHIGBA | 8.9 | |
| B00H9OX598 | 10.56 | |
| ... | …… |
df_pair如下所示:
| p1 | ... |
|---|---|
| B002HQCWYM | |
| B00H9OX598 | |
| B0000D9MYL | |
| ... |
id_numbers注意:和值的索引或順序p1不同。
uj5u.com熱心網友回復:
df_pair.merge(df.rename(columns={"id_number":"p1"}), how="left")
您可以通過合并函式合并 2 個資料框,但需要相同的列名。(或使用 left_on 和 right_on)
我的英語不好。很難解釋很久。如果您有更多問題。告訴我。
如果df有很多列,則切片df并使用df[["id_number", "price"]]而不是df
我怎樣才能在df上制作灰色塊?我不想再大膽了
uj5u.com熱心網友回復:
假設您可以執行以下操作id_number的索引:df
df_pair.join(df, on='p1')['price'].sum()
連接是一種標準的資料庫操作,它基本上通過將一個列鏈接到另一個列的索引來合并兩個資料幀。
uj5u.com熱心網友回復:
另一種選擇是set_index使用“id_number”map和price:
df_pair['price'] = df_pair['p1'].map(df1.set_index('id_number')['price'])
輸出:
p1 ... price
0 B002HQCWYM ... NaN
1 B00H9OX598 ... 10.56
2 B0000D9MYL ... 25.26
3 ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/443045.html
