【问题标题】:Pandas dataframe conditional statement didn't give me what i expectedPandas 数据框条件语句没有给我我所期望的
【发布时间】:2021-12-29 07:48:18
【问题描述】:

我有一个这样的数据框

import numpy as np
import pandas as pd

lbl = [0, 1, 2, 3]
lbl2 = [0, 1, 2, 3, 4, 5]

label = lbl + lbl2

df = pd.DataFrame({"label":label})

#matching lbl and lbl2
pairs =[]
for i in range(3):
    pair = (i,i+1)
    pairs.append(pair)

当我在终端上点击这个时

(df.loc[:,'label'][df.index > (num_old_lbl - 1)]) & (df['label'] == pairs[0][1])

我得到了我的期望

(df.loc[:,'label'][df.index > (num_old_lbl - 1)]) & (df['label'] == pairs[1][1])


但是当我像这样更改行时,每个值都显示为 False。我预计第 6 行将是 True。

【问题讨论】:

  • 什么是 num_old_lbl?还有你想用你的条件语句来实现什么?
  • 哦,我错过了它,只是第三个。 num_old_lbl = 3

标签: python pandas conditional-statements


【解决方案1】:

我们使用这个写法得到了预期的结果(将num_old_lbl设置为3):

>>> (df.index > (num_old_lbl - 1)) & (df['label'] == pairs[1][1])
0    False
1    False
2    False
3    False
4    False
5    False
6     True
7    False
8    False
9    False
Name: label, dtype: bool

对于给定的示例,它也可以按预期工作:

>>> (df.index > (num_old_lbl - 1)) & (df['label'] == pairs[0][1])
0    False
1    False
2    False
3    False
4    False
5     True
6    False
7    False
8    False
9    False
Name: label, dtype: bool

【讨论】:

  • 嗨@MinwooKang,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
猜你喜欢
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 2021-06-19
相关资源
最近更新 更多