gpt4 book ai didi

pandas - 当定义的掩码为真时如何更改特定列值?

转载 作者:行者123 更新时间:2023-12-02 05:24:30 25 4
gpt4 key购买 nike

我有一个数据框,其中有这些列名称

  • '团队1',
  • '团队2',
  • '城市',
  • “日期”。

我想要做的是当满足某些条件时将“city”的值分配为“dubai”(我使用掩码定义)。

这就是我正在做的事情:

 matches[((matches['team1']=='mi') & (matches['team2']=='rcb') & (matches['date']=='2014-04-19')),'city']='Dubai'

当满足上述所有条件时,我想将“city”中的值(现在为空)更改为“Dubai”

出现的问题:

'Series' objects are mutable, thus they cannot be hashed

我该怎么做?

最佳答案

括号 ([]) 表示法访问 Python 对象的 __getitem__ 方法(如果它定义了方法)。对于 pd.DataFrame 对象,您可以通过括号 df[array_like_object] 传递一个类似数组的对象,它将执行以下操作之一

可能性 1

# returns a copy of df with columns ['col1', 'col2']
df[['col1', 'col2']]

可能性 2

# returns a slice of which rows have corresponding trues in the mask
df[boolean_mask]

跳过其他可能性

<小时/>

你有一个boolean_mask

((matches['team1']=='mi') & 
(matches['team2']=='rcb') &
(matches['date']=='2014-04-19'))

还有一个

'city'

在这种情况下,它非常适合 loc,它可以完全处理
根据@JohnGalt

matches.loc[
((matches['team1']=='mi') &
(matches['team2']=='rcb') &
(matches['date']=='2014-04-19')),
'city'
] = 'Dubai'

关于pandas - 当定义的掩码为真时如何更改特定列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com