import pandas as pd
temp=[79,80,81,80,80,79,76,75,76,78,80,81]
for i in range(len(temp)):
if temp[i]<=80:
level=0
elif temp[i]>80 and temp[i]<=100:
level=1
elif temp[i]<=75:
n_level=0
elif temp[i]>75 and temp[i]<=95:
n_level=1//
df=pd.DataFrame([[temp[i],level]],columns=['temp1','level1','newlevel'])//
print(df)//
无法获得预期的输出
#temp# ##level## ###newlevel###
79 0 0
80 0 0
81 1 1
答案 0 :(得分:0)
请找到以下解决方案,我已使用列表理解来创建构建数据框所需的数据。请更改列表理解中的条件,以满足您的需求。 Code and Output
main
答案 1 :(得分:0)
您可以仅使用 Pandas 方法生成DataFrame。 要生成两个“级别”列,只需使用 cut :
df = pd.DataFrame({'temp': temp,
'level1' : pd.cut(temp, [0, 80, 1000], labels=[0, 1]),
'newlevel': pd.cut(temp, [0, 75, 1000], labels=[0, 1])})
注意:输出DataFrame的两个“级别”列都具有类别类型。 如果您对此不满意,请将其转换为 int :
df = pd.DataFrame({'temp': temp,
'level1' : pd.cut(temp, [0, 80, 1000], labels=[0, 1]).astype(int),
'newlevel': pd.cut(temp, [0, 75, 1000], labels=[0, 1]).astype(int)})