#python #pandas #numpy
#python #pandas #numpy
Вопрос:
Находясь в цикле for, я попытался добавить значения, запрошенные из фрейма данных в Pandas. Я использовал что-то вроде:
n = df.loc[(df["B"] > 50) amp; (df["C"] == 900), "A"]
my_list.append(n)
print("my_list is", my_list)
и он напечатал:
my_list is [21.5, 23.5, 24.5, 12 24.5
Name: b, dtype: float64]
Кажется, что все значения в списке, кроме последнего, имеют один и тот же формат, но последнее значение имеет другой формат, т. е.., 24.5 Name: b, dtype: float64
. Вероятно, это было связано с тем, что я запросил последнее значение, используя метод, отличный от других значений.
Вывод выглядит следующим образом:
[21.5, 23.5, 24.5, [24.5]]
Как я могу сделать значения в том же формате, чтобы выходные данные выглядели так [21.5, 23.5, 24.5, 24.5]
?
Редактировать:
Timestamp X Y B C Type Id
0 2000-10-26 10:08:27.060 18 14 0.0 24.5 medium 18
1 2000-10-26 10:39:24.310 18 13 1.0 24.0 low 18
2 2000-10-26 11:50:48.190 18 14 1.0 23.5 medium 18
Комментарии:
1. потому что последнее значение в вашем списке, похоже, является фреймом данных или, скорее, серией. Бесполезно говорить о «форматах». Ваш список содержит объекты . Кажется, что первые три объекта имеют
float
тип, и опять же, последний, похоже, имеетpd.Series
тип.2. @nil можем ли мы увидеть данные?
3. Привет @juanpa.arrivillaga Я пробовал
n.astype('float')
,n.to_numeric
pd.to_numeric(n).astype('float')
и ничего не изменилось4. @nilsinelabore конечно, нет, все они возвращаются
pd.Series
(или, если используются в фрейме данных, apd.DataFrame
). Вы, вероятно, хотите что-то вродеn = df.loc[(df["B"] > 50) amp; (df["C"] == 900), "A"].item()
Или если вы ожидаете более одного элемента, просто подайте в судmy_list.extend(n.tolist())
5. @juanpa.arrivillaga Спасибо, это сработало 🙂 Возможно, я принял ваше решение, если вы хотите ответить на него ниже