【问题标题】:IF AND statement only outputs ELSE statement PythonIF AND 语句只输出 ELSE 语句 Python
【发布时间】:2017-09-25 11:50:15
【问题描述】:

我有一个生成不同数据帧的函数,第三个数据帧会导致错误,因为它在底部包含最后一行 NaN 值。

我尝试了一个 if-else 条件语句来删除 NaN 值的行,但每次我这样做时,它都会不断输出 NaN 值。

ma = 1
year = 3
df

if ma > 0 and year == 3:
    df[0:-1]
else:
    df

我也尝试了嵌套 if 语句,但它产生了相同的 NaN 值输出。

ma_path = "SMA"
year_path = "YEAR_3"

if ma_path == ["SMA"]:
    if year_path == ["YEAR_3"]:
        df[0:-1]
    else:
        df

我确信这是我错过的一些简单的事情。任何人都可以帮忙吗?提前致谢。

【问题讨论】:

  • 您是要删除一列还是删除一行?如果您使用pandas.DataFrame,则使用df[] 是访问列,而不是行。使用df.loc[] 访问行。
  • 嘿 Silveris,我试图删除数据框底行中的 NaN 值。幸运的是我的问题解决了。我只是愚蠢,忘记在 if-and 语句中分配 df = df[0:-1]。

标签: python if-statement dataframe conditional nan


【解决方案1】:

df[0:-1] 不会更改 df 当前包含的值。如果要删除df的最后一项,则需要将切片分配回名称:

df = df[0:-1]

如果 df 是一个普通列表,您还可以删除带有 pop 的项目。

df.pop()

【讨论】:

  • 谢谢,凯文!我应该意识到我需要将更新的 df 分配给 df。嗬! >.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 2020-07-30
  • 1970-01-01
相关资源
最近更新 更多