[英]Logic to replace column value in mysql python
+--- -----+------------+-------------+
|master_id| product_id |products |
+---------+------------+-------------+
| 0 | 123 | home |
| 12 | 234 | office |
| 15 | 456 | home |
| 0 | 678 | office |
| 25 | 890 | home |
| 0 | 145 | office |
+---+-----------------+--------------+
我有這個表(只顯示一部分行,超過1000行),我想寫一個邏輯,這樣,每當
master_id = 0,master_id = product_id
我將其移入了熊貓數據框。 現在我該怎么寫這個邏輯
這是你想要的嗎?
select (case when master_id = 0 then product_id else master_id end) as master_id,
product_id, products
from t;
您不需要熊貓,您可以直接通過數據庫進行操作。
如果您只想以不同的方式顯示記錄:
SELECT CASE master_id WHEN 0 THEN product_id ELSE master_id END AS master_id,
product_id,
products
FROM mytable
如果您實際上要更新數據庫,則更加簡單:
UPDATE mytable
SET master_id = product_id
WHERE master_id = 0
如果要使用熊貓數據框,則可以使用numpy.where函數
import numpy as np
import pandas as pd
# initialise dataframe
df = pd.DataFrame([[0, 12, 15, 0, 25],
[123, 234, 456, 678, 890],
['home', 'office', 'home', 'office', 'home']]).T
df.columns = ['master_id', 'product_id', 'products']
# Now do fix master_id
df.master_id = np.where(df.master_id == 0, df.product_id, df.master_id)
# New df:
master_id product_id products
0 123 123 home
1 12 234 office
2 15 456 home
3 678 678 office
4 25 890 home
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.