如何在以下情况下创建熊猫数据框

时间:2020-09-10 22:17:27

标签: python python-3.x pandas numpy

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

2 个答案:

答案 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)})