Это мой фрейм данных:
import pandas as pd
df = pd.DataFrame({
'a': [10, 20, 30, 1, 20, 3, 4, 0],
'b': [30, 10, 9, 21, 24, 31, 29, 2],
'c': [True, True, True, False, False, True, True, True]
})
Ожидаемый результат — создание столбца d:
a b c d
0 10 30 True NaN
1 20 3 True 10
2 30 11 True 20
3 1 25 False NaN
4 20 24 False NaN
5 3 31 True NaN
6 4 29 True 30
7 0 2 True 4
Сначала выбираются все значения в b, для которых c установлено значение True. Я объясняю процесс из строки 1, потому что его легче понять.
Значение в b равно 3, тогда следует проверить все значения выше него. Следует выбрать БЛИЖАЙШЕЕ значение в , превышающее 3. Итак, выбрано 10.
для строки номер 2 значение равно 11. Ближайшее к этому значению, которое больше, чем в , равно 20.
Для строк 3 и 4, поскольку c имеет значение False. Следует выбрать NaN.
Для строки 5, поскольку в нет предыдущих значений, превышающих 31, NaN > выбрано.
Для строки 6 ближайшее значение в , превышающее 29, равно 30.
Это то, что я пробовал до сих пор. Это не дает мне результата. Я думаю, что выбранный мною подход может быть правильным.
t = df['a'].to_numpy()
h = df['b'].to_numpy()
m2 = t < h[:, None]
df['d'] = np.nanmax(np.where(m2, t, np.nan), axis=1)
Подробнее здесь: https://stackoverflow.com/questions/791 ... greater-th
Как я могу проверить предыдущие значения столбца, чтобы найти значение, которое больше, чем выбранная строка в другом ст ⇐ Python
Программы на Python
1730801636
Anonymous
Это мой фрейм данных:
import pandas as pd
df = pd.DataFrame({
'a': [10, 20, 30, 1, 20, 3, 4, 0],
'b': [30, 10, 9, 21, 24, 31, 29, 2],
'c': [True, True, True, False, False, True, True, True]
})
Ожидаемый результат — создание столбца d:
a b c d
0 10 30 True NaN
1 20 3 True 10
2 30 11 True 20
3 1 25 False NaN
4 20 24 False NaN
5 3 31 True NaN
6 4 29 True 30
7 0 2 True 4
Сначала выбираются все значения в b, для которых c установлено значение True. Я объясняю процесс из строки 1, потому что его легче понять.
Значение в b равно 3, тогда следует проверить все значения выше него. Следует выбрать БЛИЖАЙШЕЕ значение в , превышающее 3. Итак, выбрано 10.
для строки номер 2 значение равно 11. Ближайшее к этому значению, которое больше, чем в , равно 20.
Для строк 3 и 4, поскольку c имеет значение False. Следует выбрать NaN.
Для строки 5, поскольку в нет предыдущих значений, превышающих 31, NaN > выбрано.
Для строки 6 ближайшее значение в , превышающее 29, равно 30.
Это то, что я пробовал до сих пор. Это не дает мне результата. Я думаю, что выбранный мною подход может быть правильным.
t = df['a'].to_numpy()
h = df['b'].to_numpy()
m2 = t < h[:, None]
df['d'] = np.nanmax(np.where(m2, t, np.nan), axis=1)
Подробнее здесь: [url]https://stackoverflow.com/questions/79158535/how-can-i-check-previous-values-of-a-column-to-find-the-value-that-is-greater-th[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия