#python #python-3.x #pandas #numpy
#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
Комментарии:
1. Пожалуйста, разберитесь с ожидаемым результатом.
2. Способ, которым вы создаете свой фрейм данных, несовместим с конструктором
3. Приведенное выше является одним.. Я добавил изображение! введите описание изображения здесь ! введите описание изображения здесь Я просто хочу знать, можем ли мы напрямую использовать фрейм данных pandas и использовать условия И
Ответ №1:
Пожалуйста, найдите решение ниже, я использовал понимание списка для создания данных, необходимых для построения фрейма данных. Пожалуйста, измените условия внутри списка в соответствии с вашими потребностями. Код и вывод
import pandas as pd
import numpy as np
temp=[79,80,81,80,80,79,76,75,76,78,80,81]
level=[0 if i<=80 else 1 for i in temp]
n_level=[0 if i<=75 else 1 for i in temp]
#print(temp)
#print(level)
#print(n_level)
df=pd.DataFrame({'temp':temp,'level':level,'newlevel':n_level})
df
Ответ №2:
Вы можете сгенерировать свой фрейм данных, используя исключительно методы Pandas. Чтобы сгенерировать оба столбца «уровня», достаточно использовать 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])})
Примечание: Оба столбца «уровня» выходного фрейма данных имеют тип category.
Если вас это не устраивает, приведите их к 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)})
Комментарии:
1. ты качаешься 🙂 .Спасибо за помощь @Valdi_Bo