这是我遇到问题的代码部分:
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”中的列的所有值,而不仅仅是最后一个值。
答案 0 :(得分: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
在您的代码中,您要在每次迭代中更改b
,因此它仅存储最新的值。将来,当您尝试存储多个值时,请使用其他数据类型。
答案 1 :(得分:0)
您还可以使用熊猫的过滤功能并使用
values = df.loc[(df['Days'] >= 0) & (df['Days'] <= 30)]
如果您希望这些值作为一个Series而不是一个DataFrame,请使用
values_series = values['Days']
如果您希望将值作为列表而不是系列使用
values_list = list(values_series)