首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python用df.loc更改df.loc值

Python用df.loc更改df.loc值
EN

Stack Overflow用户
提问于 2022-05-12 08:45:02
回答 1查看 33关注 0票数 1

大家好,我和熊猫一起读到了一张excel表格。这是输出:

代码语言:javascript
复制
                              vlan  ajout
0  Vlan Controleur Wifi\nVlan bleu    NaN
1                         Vlan TAM    NaN
2                          Vlam EM    NaN
3  Vlan Controleur Wifi\nVlan bleu    NaN

当在"vlan“列中找到单词"Controleur"时,我想将"Controleur"值更改为"vlan 10”。我喜欢的未来输出是:

代码语言:javascript
复制
                              vlan  ajout
0  Vlan Controleur Wifi\nVlan bleu    vlan 10
1                         Vlan TAM    
2                          Vlam EM    
3  Vlan Controleur Wifi\nVlan bleu    vlan 10

目前,我尝试了许多可能性,并且我有这样的代码,它更接近于我所能找到的现实:

代码语言:javascript
复制
df = pd.read_excel (r'.\test.xlsx')
df['ajout'] = df['ajout'].fillna(0)
df.loc[df['vlan'] == "Controleur", df['ajout']] = 'vlan 10'
print(df)

遗憾的是,它不起作用了,而且输出非常糟糕

代码语言:javascript
复制
                              vlan  ajout  0.0  0.0  0.0  0.0
0  Vlan Controleur Wifi\nVlan bleu    0.0  NaN  NaN  NaN  NaN
1                         Vlan TAM    0.0  NaN  NaN  NaN  NaN
2                          Vlam EM    0.0  NaN  NaN  NaN  NaN
3  Vlan Controleur Wifi\nVlan bleu    0.0  NaN  NaN  NaN  NaN

我不知道为什么要添加这么多列,为什么我的'ajout'列保持为0

如果有人有什么主意或线索,我会接受的

谢谢大家

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-12 08:49:17

您需要在系列值中找到Controleur

代码语言:javascript
复制
df.loc[df['vlan'].str.contains("Controleur"), 'ajout'] = 'vlan 10'

您也可以尝试df.masknp.where

代码语言:javascript
复制
df['ajout'] = df['ajout'].mask(df['vlan'].str.contains("Controleur"), 'vlan 10')

# or

df['ajout'] = np.where(df['vlan'].str.contains("Controleur"), 'vlan 10', df['ajout'])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72212528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档