2
我想根據查詢設置列的值。我大概可以使用.where
來完成這個任務,但是.query
的標準是我更容易維護的字符串,特別是當標準變得複雜時。基於df.query設置值?
import numpy as np
import pandas as pd
np.random.seed(51723)
df = pd.DataFrame(np.random.rand(n, 3), columns=list('abc'))
我想提出一個新列,d和值設置爲1,其中符合這些標準:
criteria = '(a < b) & (b < c)'
別的不說,我已經試過:
df['d'] = np.nan
df.query(criteria).loc[:,'d'] = 1
,但似乎什麼都不做,除了給SettingWithCopyWarning
即使我使用.loc
又路過inplace
這樣的:
df.query(criteria, inplace=True).loc[:,'d'] = 1
給人AttributeError: 'NoneType' object has no attribute 'loc'
我錯過了離開'FALSE'行空部分( - : – piRSquared
今天我瞭解了'.eval'。這非常有用。謝謝。 – ChuHo
@ChuHo,很高興我們可以幫助:) – MaxU