Импорт данных с каждым значением, содержащим метки столбцов - PullRequest
1 голос
/ 17 мая 2019

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

Я хочу импортировать текстовый файл, содержащий это:

Column1=variable11&Column2=variable12&Column3=variable13&Column4=variable14
Column1=variable12&Column2=variable22&Column3=variable23
Column1=variable13&Column2=variable32&Column3=variable33&Column4=variable34&Column5=variable35

Я ожидаю, что результатом будет таблицакак это:

Column1         Column2         Column3         Column4         Column5
variable11  variable12  variable13  variable14  
variable21  variable22  variable23      
variable31  variable32  variable33  variable34  variable35

Ответы [ 2 ]

1 голос
/ 17 мая 2019

У вас есть несколько опечаток в ваших данных, вам может понадобиться split дважды, чтобы вернуть формат в dict, затем передать конструктор dict в pandas.DataFrame

pd.DataFrame([dict(x)for x in df.Read.str.split('&').apply(lambda x : [tuple(y.split('=',1)) for y in x])])
Out[128]: 
        Column1     Column2     Column3     Column4     Column5     column4
0    variable11  variable12  variable13         NaN         NaN  variable14
1  variable1=21  variable22  variable23         NaN         NaN         NaN
2  variable1=31  variable32  variable33  variable34  variable35         NaN

df=pd.DataFrame([dict(x)for x in df.Read.str.split('&').apply(lambda x : [tuple(y.split('=',1)) for y in x])])
df.columns=df.columns.str.upper()
df=df.sum(axis=1,level=0)
1 голос
/ 17 мая 2019

Я предполагаю, что Column1=variable1=21 в строке 2 и 3 - ошибки.

df = pd.read_csv('file', header=None)

df = df[0].str.split('=|&', expand=True)
tmp = df.loc[:,1::2].copy()
tmp.columns = df.loc[:,::2].apply(lambda x: x.dropna().iloc[0])

выход

    Column1     Column2     Column3     column4     Column5
0   variable11  variable12  variable13  variable14  None
1   variable21  variable22  variable23  None        None
2   variable31  variable32  variable33  variable34  variable35
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...