Проблема с разделением столбца pandas
Столкнулся с проблемой, хочу разделить ряд по очевидному разделителю - "\". Пример данных:
Column = id\tlabel\tx\ty\tcluster\tweight\tweight\tweight
Row = 96\taagaard a.\t-0.297\t0.2777\t4\t1186\t2322\t23
Сначала пытался через /, но там видимо что то с табуляцией и expand = True не работал, попробовал через 't' но тоже выдает ошибку.
prep[['Id','Label','X','Y','Cluster','Links','Total link strength','Citations']] = prep['id\tlabel\tx\ty\tcluster\tweight<Links>\tweight<Total link strength>\tweight<Citations>'].str.split('t',expand = True)
Ответы (2 шт):
Автор решения: Алексей Р
→ Ссылка
Странно у вас колонка называется...
prep = pd.DataFrame(['96\taagaard a.\t-0.297\t0.2777\t4\t1186\t2322\t23'], columns=['id\tlabel\tx\ty\tcluster\tweight\tweight\tweight'])
prep[['Id', 'Label', 'X', 'Y', 'Cluster', 'Links', 'Total link strength', 'Citations']] = prep['id\tlabel\tx\ty\tcluster\tweight\tweight\tweight'].str.split('\t', expand=True, regex=False)
print(prep)
id\tlabel\tx\ty\tcluster\tweight\tweight\tweight Id Label X Y Cluster Links Total link strength Citations
0 96\taagaard a.\t-0.297\t0.2777\t4\t1186\t2322\t23 96 aagaard a. -0.297 0.2777 4 1186 2322 23
Автор решения: strawdog
→ Ссылка
Если вам нужно разделить строку по обратному слэшу ("\") а не по знаку табуляции (хотя последнее напрашивается как очевидное), то можно попробовать сделать что-то подобное:
import pandas as pd
df = pd.DataFrame({"Col1":["id\tlabel\tx\ty\tcluster\tweight\tweight\tweight"]})
df:
Col1
0 id\tlabel\tx\ty\tcluster\tweight\tweight\tweight
а затем:
res = df["Col1"].str.encode('unicode_escape').apply(lambda x:x.split(b"\\")).explode().str.decode("unicode_escape")
res:
0 id
0 tlabel
0 tx
0 ty
0 tcluster
0 tweight
0 tweight
0 tweight
Name: Col1, dtype: object