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