Поскольку MS Excel ограничивает количество символов в ячейке до 32767, мне приходится разбивать более длинные строки в кадре данных панд на несколько ячеек.
Есть ли способ разбить строки столбца панд "Текст" на несколько столбцов "Текст_1", "Текст_2", "Текст_3", ..., чтобы разделить? Также важно, чтобы текстовый блок не был разделен внутри слова, поэтому я предполагаю, что необходимо регулярное выражение.
Пример кадра данных:
df_test = pd.DataFrame({'Text' : ['This should be the first very long string','This is the second very long string','This is the third very long string','This is the last string which is very long'],
'Date' : [2019, 2018, 2019, 2018],
'Source' : ["FAZ", "SZ" , "HB", "HB"],
'ID' : ["ID_1", "ID_2", "ID_3", "ID_4"]})
df_test
Text Date Source ID
0 This should be the first very long string 2019 FAZ ID_1
1 This is the second very long string 2018 SZ ID_2
2 This is the third very long string 2019 HB ID_3
3 This is the last string which is very long 2018 HB ID_4
Предполагая, что вырезка в этом примере происходит приn=15
, а не на n=32767
, я хочу разделить столбец Текст соответственно на что-то вроде этого:
Text_1 Text_2 Text_3 Text_4 Date Source ID
0 This should be the first very long string 2019 FAZ ID_1
1 This is the second very long string 2018 SZ ID_2
2 This is the third very long string 2019 HB ID_3
3 This is the last string which is very long 2018 HB ID_4
В конечном итоге подход должен масштабироваться до n=32767
и по крайней мере до десяти новых столбцов "Text_1"
, "Text_2"
и т. Д.
До сих пор я создал новый столбец "n"
, указывающий длину df_text["Text"]
строк в строке:
df_test['n'] = df_test['Text'].str.split("").str.len()