- 此问题在此处已有答案**:
Pandas conditional creation of a series/dataframe column(12个答案)
昨天关门了。
我有一个 Dataframe 如下
df = pd.DataFrame(
{'stud_id' : [101, 101, 101, 101,
101, 101, 101, 101],
'sub_code' : ['CSE01', 'CSE02', 'CSE03',
'CSE06', 'CSE05', 'CSE04',
'CSE07', 'CSE08'],
'marks' : ['A','B','C','D',
'E','F','G','H']}
)
我想做以下几点
a)使用值列表基于sub_code
过滤我的 Dataframe
b)对于过滤/选择的行,将其marks
值替换为常数值-FAIL
因此,我尝试了下面的方法,但是它不起作用,并且对于未过滤的行导致NA。
sub_list = ['CSE01', 'CSE02', 'CSE03','CSE06', 'CSE05', 'CSE04']
df['marks'] = df[df['sub_code'].isin(sub_list)]['marks'].replace(r'^([A-Za-z])*$','FAIL', regex=True)
我希望我的输出如下所示
1条答案
按热度按时间rryofs0p1#
您可以使用pandas.loc
代码:
输出: