繁体   English   中英

在熊猫中循环浏览字典

[英]looping through dictionary in pandas

我有一个数据框,我想说值是否相等或类似,然后将列“输出”称为新值。

我的代码如下

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

等等

然后循环通过这个?

您可以将字符串放入字典中

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM