Разверните строку фрейма данных на несколько строк на основе условий строки.Python

Программы на Python
Ответить
Anonymous
 Разверните строку фрейма данных на несколько строк на основе условий строки.

Сообщение Anonymous »

У меня есть необработанные данные, похожие на приведенный ниже фрейм данных:

Код: Выделить всё

df = pd.DataFrame([{'var1': '220-224 (Even) roadname1', 'var2': 'location 1', 'var3': 'area 1'},
{'var1': 'site of 5 to 9 (odd) roadname2', 'var2': 'location 2', 'var3': 'area 2'},
{'var1': '16, 19 roadname3', 'var2': 'location 3', 'var3': 'area 3'}]
)
df

var1    var2    var3
0   220-224 (Even) roadname1    location 1  area 1
1   site of 5 to 9 (odd) roadname2  location 2  area 2
2   16, 19 roadname3    location 3  area 3
Я хотел бы написать функцию, которая будет разбивать строки var1 так, чтобы каждое указанное число становилось отдельной строкой в ​​кадре данных с выводом, например:

Код: Выделить всё

df = pd.DataFrame([{'var1': '220 roadname1', 'var2': 'location 1', 'var3': 'area 1'},
{'var1': '222 roadname1', 'var2': 'location 1', 'var3': 'area 1'},
{'var1': '224 roadname1', 'var2': 'location 1', 'var3': 'area 1'},
{'var1': '5 roadname2', 'var2': 'location 2', 'var3': 'area 2'},
{'var1': '7 roadname2', 'var2': 'location 2', 'var3': 'area 2'},
{'var1': '9 roadname2', 'var2': 'location 2', 'var3': 'area 2'},
{'var1': '16 roadname3', 'var2': 'location 3', 'var3': 'area 3'},
{'var1': '19 roadname3', 'var2': 'location 3', 'var3': 'area 3'},]
)
df

var1    var2    var3
0   220 roadname1   location 1  area 1
1   222 roadname1   location 1  area 1
2   224 roadname1   location 1  area 1
3   5 roadname2     location 2  area 2
4   7 roadname2     location 2  area 2
5   9 roadname2     location 2  area 2
6   16 roadname3    location 3  area 3
7   19 roadname3    location 3  area 3
условия строки немного варьируются с использованием заглавных букв и диапазонов чисел, и я не уверен, что существует эффективный способ сделать это, который может обрабатывать изменения строки.

Подробнее здесь: https://stackoverflow.com/questions/792 ... conditions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»