if语句中的新数据帧。蟒蛇

问题描述 投票:0回答:2

以下是我遇到问题的代码部分:

for x in range(len(df['Days'])):
    if df['Days'][x]>0 and df['Days'][x]<=30: 
        b = df['Days'][x]
b

我得到的输出是b = 14,这是if语句在数据帧的列中保存的最后一个值。我试图将if语句所在的列的所有值保存在“b”中,而不仅仅是最后一个值。

python pandas dataframe conditional
2个回答
1
投票

你想要做的是改为列表并将b附加到它。

my_vals = []
for x in range(len(df['Days'])):
    if df['Days'][x]>0 and df['Days'][x]<=30: 
        b = df['Days'][x]
        my_vals.append(b)
my_vals

在您的代码中,您将在每次迭代中更改qazxsw poi,因此它仅存储最新值。将来,当您尝试存储多个值时,请在不同的数据类型中执行此操作。


0
投票

您还可以使用pandas的过滤功能并使用

b

如果您希望将值作为Series而不是DataFrame使用

values = df.loc[(df['Days'] >= 0) & (df['Days'] <= 30)]

如果您希望将值作为列表而不是使用Series

values_series = values['Days']

© www.soinside.com 2019 - 2024. All rights reserved.