У меня есть датафрейм:
In [1]: import pandas as pd
...:
...: df = pd.DataFrame([['dicts', 'oui_lookup', 'MergeTree', 'ipdr1']], colum
...: ns=['database', 'table', 'engine', 'server'])
...: df
Out[1]:
database table engine server
0 dicts oui_lookup MergeTree ipdr1
Я хотел бы повернуть фрейм данных, чтобы изменить его формат.
In [3]: df.pivot(index='table', columns='server', values='engine')
Out[3]:
server ipdr1
table
oui_lookup MergeTree
Пока все хорошо.
Теперь я хотел бы также иметь в базе данных индекса, я попробовал:
In [4]: df.pivot(index=['database', 'table'], columns='server', values='engine')
...:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-4-c81911288ca4> in <module>
----> 1 df.pivot(index=['database', 'table'], columns='server', values='engine')
/usr/lib/python3.7/site-packages/pandas/core/frame.py in pivot(self, index, columns, values)
5635 def pivot(self, index=None, columns=None, values=None):
5636 from pandas.core.reshape.pivot import pivot
-> 5637 return pivot(self, index=index, columns=columns, values=values)
5638
5639 _shared_docs['pivot_table'] = """
/usr/lib/python3.7/site-packages/pandas/core/reshape/pivot.py in pivot(data, index, columns, values)
385 else:
386 indexed = data._constructor_sliced(data[values].values,
--> 387 index=index)
388 return indexed.unstack(columns)
389
/usr/lib/python3.7/site-packages/pandas/core/series.py in __init__(self, data, index, dtype, name, copy, fastpath)
247 'Length of passed values is {val}, '
248 'index implies {ind}'
--> 249 .format(val=len(data), ind=len(index)))
250 except TypeError:
251 pass
ValueError: Length of passed values is 1, index implies 2
Но я получил эту ошибку.
Что мне нужно, это датафрейм в этой форме:
Out[16]:
ipdr1
database table
dicts oui_lookup MergeTree
Что я делаю не так?