如果 A 列等于“twitter”和“pinterest”,有沒有辦法使用 pandas 將日志應用到 B 列?
例如,這是我的資料框的一個非常簡化的版本。
import pandas as pd
import math
df = pd.DataFrame({'platform':[facebook,twitter,snapchat,twitter,pinterest],'b':[13,1000,21,1300,500]})
uj5u.com熱心網友回復:
例如,如果您的conditionis df["platform"] == "facebook",您可以使用陳述句創建一個 apply 函式。
嘗試這個:
df.apply(lambda x: np.log(x["b"]) if condition else x["b"], axis=1)
uj5u.com熱心網友回復:
使用帶有布爾索引的矢量代碼:
import numpy as np
df['b'] = df['b'].mask(df['platform'].isin(['twitter', 'pinterest']), np.log(df['b']))
要么:
df.loc[df['platform'].isin(['twitter', 'pinterest']), 'b'] = np.log(df['b'])
輸出:
platform b
0 facebook 13.000000
1 twitter 6.907755
2 snapchat 21.000000
3 twitter 7.170120
4 pinterest NaN
uj5u.com熱心網友回復:
這有幫助嗎
df[df.platform.isin(['twitter','pinterest'])].b.apply(lambda b : np.log(b))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/443595.html
上一篇:從資料框中提取行
