翻阅Pandas词典

2024-04-29 21:43:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,我想说,如果值等于或类似,然后调用列“output”一个新值。你知道吗

我的代码在下面

df.loc[df['Varname']=='Intercept','Output']='1Base'
df.loc[df['Varname'].str.contains('Xmas|Bank|Easter'),'Output']='3Holidays'
df.loc[df['Varname'].str.contains('BF'),'Output']='9Events'
df.loc[df['Varname'].str.contains(r'(?=.*Brand)(?=.*ME2)'),'Output']='hjhjha'
df.loc[df['Varname'].str.contains(r'(?=.*Trading)(?=.*ME2)'),'Output']='ghghg'
df.loc[df['Varname'].str.contains(r'(?=.*Sky)(?=.*PovRSP)'),'Output']='dfdfdf'

有没有一种方法可以在字典和循环中实现这一点?你知道吗

例如

dict={Intercept : 1Base,
     ,'Xmas|Bank|Easter : 3Holiday

等等

然后循环这个?你知道吗


Tags: 数据代码dfoutputlocbankcontainsstr
1条回答
网友
1楼 · 发布于 2024-04-29 21:43:47

你可以把你的弦编进口述

d = {'^Intercept$': '1Base'
    'Xmas|Bank|Easter': '3Holidays'
    'BF': '9Events'
    r'(?=.*Brand)(?=.*ME2)'): 'hjhjha'
    r'(?=.*Trading)(?=.*ME2)'): 'ghghg'
    r'(?=.*Sky)(?=.*PovRSP)'): 'dfdfdf'}

一次迭代

for key, value in d.items():
    df.loc[df['Varname'].str.contains(key), 'Output'] = value

相关问题 更多 >