【发布时间】:2019-08-28 19:32:19
【问题描述】:
我正在尝试根据两个条件(例如,特定日期之后的特定 ID)替换多个观察中 3 列的值。
我见过类似的问题。
Pandas: How do I assign values based on multiple conditions for existing columns?
Replacing values in a pandas dataframe based on multiple conditions
但是,它们并没有完全解决我的问题,或者我无法完全操纵它们来解决我的问题。
这段代码会生成一个类似于我的数据框:
df = pd.DataFrame({'SUR_ID': {0:'SUR1', 1:'SUR1', 2:'SUR1', 3:'SUR1', 4:'SUR2', 5:'SUR2'}, 'DATE': {0:'05-01-2019', 1:'05-11-2019', 2:'06-15-2019', 3:'06-20-2019', 4: '05-15-2019', 5:'06-20-2019'}, 'ACTIVE_DATE': {0:'05-01-2019', 1:'05-01-2019', 2:'05-01-2019', 3:'05-01-2019', 4: '05-01-2019', 5:'05-01-2019'}, 'UTM_X': {0:'444895', 1:'444895', 2:'444895', 3:'444895', 4: '445050', 5:'445050'}, 'UTM_Y': {0:'4077528', 1:'4077528', 2:'4077528', 3:'4077528', 4: '4077762', 5:'4077762'}})
输出数据框:
我要做什么:
我正在尝试将 UTM_X、UTM_Y 和 ACTIVE_DATE 替换为
[444917, 4077830, '06-04-2019']
当
SUR_ID 是“SUR1”并且DATE >=“2019-06-04 12:00:00”
这是问题 1 解决方案的一个适应性差的版本,试图解决我的问题 - 抛出错误:
df.loc[[df['SUR_ID'] == 'SUR1' and df['DATE'] >='2019-06-04 12:00:00'], ['UTM_X', 'UTM_Y', 'Active_Date']] = [444917, 4077830, '06-04-2019']
【问题讨论】:
标签: python-3.x pandas