Разделение кадра данных на основе плавающего значения в python

Я попытался вынуть десятичные значения на основе значения, представленного перед десятичной точкой. У меня есть фрейм данных, как показано ниже,

data    flow
1.5 parallel
1.2 parallel
1.3 parallel
2   sequence
2.5 parallel
2.4 parallel
2.8 parallel
3   sequence
3.2 parallel
3.1 parallel
3.5 parallel
4   sequence
4.1 parallel
4.5 parallel
4.3 parallel
1   sequence
5   sequence
6   sequence

Ожидаемый результат,

data    flow
1.5 Parallel1
1.2 Parallel1
1.3 Parallel1
2   sequence
2.5 Parallel2
2.4 Parallel2
2.8 Parallel2
3   sequence
3.2 Parallel3
3.1 Parallel3
3.5 Parallel3
4   sequence
4.1 Parallel4
4.5 Parallel4
4.3 Parallel4
1   sequence
5   sequence
6   sequence

Как я могу добиться этого, используя панды,...

"Я пытался извлечь десятичные значения..." - пожалуйста, покажите свою попытку и объясните, что не работает

ForceBru 10.05.2022 14:04

данные являются строкой или числом с плавающей запятой?

mozway 10.05.2022 14:04

тип данных плавающий.

Viji Lakshmi 10.05.2022 14:07

всегда ли «последовательность» буквальна?

mozway 10.05.2022 14:09
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если данные являются строкой:

df.loc[df['flow'].ne('sequence'), 'flow'] += df['data'].str.extract('(\d+)',
                                                                    expand=False)

если это поплавок:

df.loc[df['flow'].ne('sequence'), 'flow'] += df['data'].astype(int).astype(str)

выход:

    data       flow
0    1.5  parallel1
1    1.2  parallel1
2    1.3  parallel1
3    2.0   sequence
4    2.5  parallel2
5    2.4  parallel2
6    2.8  parallel2
7    3.0   sequence
8    3.2  parallel3
9    3.1  parallel3
10   3.5  parallel3
11   4.0   sequence
12   4.1  parallel4
13   4.5  parallel4
14   4.3  parallel4
15   1.0   sequence
16   5.0   sequence
17   6.0   sequence

У меня такой же результат, но я ожидаю параллельного увеличения 1, 2, 3 в зависимости от возникновения, что означает, что если 2.1, .. серия отсутствует, значит, 3.2, .. серия должна подпадать под параллель 2.

Viji Lakshmi 10.05.2022 14:23

@VijiLakshmi, тогда вам нужен groupby.cumcount, но это другой вопрос;)

mozway 10.05.2022 14:25

если я иду с группой, у меня есть проблема с повторяющимися значениями, такими как (2.2, 2.2) - я не знаю, как реализовать ..

Viji Lakshmi 10.05.2022 14:28

Другие вопросы по теме