У меня есть фрейм данных со следующей структурой:
[
{
"key1":"value1",
"key2":"2",
"key3":["a","b2","keep this exemple from work_text_reviews_count of 450"],
},
{
"key1":"value1",
"key2":"2",
"key3":[],
}
]
Как я могу удалить строку из предопределенной строки с пандами без изменения структуры.
предопределенная строка = "из work_text_reviews_count из"
текст, который я хочу удалить "из work_text_reviews_count из 450"
Ожидаемый результат:
[
{
"key1":"value1",
"key2":"2",
"key3":["a","b2","keep this exemple"],
},
{
"key1":"value1",
"key2":"2",
"key3":[],
}
]
Здесь у вас нет большого выбора, кроме как зацикливаться.
pat = " from work_text_reviews_count of"
df['key3'] = [[x.split(pat)[0] for x in l] for l in df['key3']]
выход:
key1 key2 key3
0 value1 2 [a, b2, keep this exemple]
1 value1 2 []
Чтобы обновить данные на месте:
for l in df['details']:
for d in l:
if "average_rating" in d:
d["average_rating"] = d["average_rating"].split()[0]
выход:
name details
0 Book1 [{'id': 30278752, 'isbn': ' 1594634025', 'average_rating': '3.92'}]
1 Book2 [{'id': 34006942, 'isbn': ' 1501173219', 'average_rating': '4.33'}]
@Prestige, это все та же логика, вам нужно зациклиться
Но я не могу разделить() с позицией 0 (потому что у меня несколько строк, и я не знаю, в какой позиции будет предопределенная строка
вы можете разделить на 'from work_text_reviews_count of'
;) или использовать регулярное выражение, если оно более сложное
@Prestige см. пример обновления
Извините, я привел неправильный пример: / я обновил свой пост