


У меня есть134 узла.Четырнадцать различных анализов (прогон) был выполнен.Каждый прогон имеет значения, сохраненные в виде словаря, для всех 134 узлов.Каждый узел имеет значения, сохраненные для 150 временных шагов (150 значений для каждого узла). Например, прогон 1 сохраняется как словарь (10 временных шагов), т.е. узел A, (0,1,0,5,6, 7, 8,1, 0,6) и узел B, (1,2,3,4,5,7, 6, 8,9,1).Аналогично, прогон 2 сохраняется как словарь.Я мог бы экспортировать эти значения в лист Excel, но значения сохраняются вместе как (0,1,0,5,6, 7, 8, 1, 0,6).Я хочу, чтобы только первые три значения для каждого узла были экспортированы в таблицу Excel в трех отдельных столбцах (вместо всех 10 значений)
Как экспортировать отдельные значения в каждом столбце из прогона 1 и прогона 2 исохранить его в листе Excel?
Код, который сохраняет лист Excel со всеми значениями, перечисленными в одном столбце:
run1, run2, run3, run4, run5, run6, run7, run8, run9, run10, run11, run12, run13, run14 = data # each run has 5 values for 2 variables
df = pd.DataFrame.from_dict(data)
df.to_excel("data.xlsx")
Когда я запускаю этот код, df_1= df.loc[:, pd.IndexSlice[:, ['Value 1', 'Value 3', 'Value 5']]]
Я получил следующую ошибку:
TypeError Traceback (most recent call last)
<ipython-input-84-8d2d90289161> in <module>()
----> 1 df_1= df.loc[:, pd.IndexSlice[:, ['Value 1', 'Value 3', 'Value 5']]]
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/indexing.py in __getitem__(self, key)
1308
1309 if type(key) is tuple:
-> 1310 return self._getitem_tuple(key)
1311 else:
1312 return self._getitem_axis(key, axis=0)
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/indexing.py in _getitem_tuple(self, tup)
794 def _getitem_tuple(self, tup):
795 try:
--> 796 return self._getitem_lowerdim(tup)
797 except IndexingError:
798 pass
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/indexing.py in _getitem_lowerdim(self, tup)
920 for i, key in enumerate(tup):
921 if is_label_like(key) or isinstance(key, tuple):
--> 922 section = self._getitem_axis(key, axis=i)
923
924 # we have yielded a scalar ?
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/indexing.py in _getitem_axis(self, key, axis)
1470 raise ValueError('Cannot index with multidimensional key')
1471
-> 1472 return self._getitem_iterable(key, axis=axis)
1473
1474 # nested tuple slicing
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/indexing.py in _getitem_iterable(self, key, axis)
1034 def _getitem_iterable(self, key, axis=0):
1035 if self._should_validate_iterable(axis):
-> 1036 self._has_valid_type(key, axis)
1037
1038 labels = self.obj._get_axis(axis)
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/indexing.py in _has_valid_type(self, key, axis)
1390
1391 # TODO: don't check the entire key unless necessary
-> 1392 if len(key) and np.all(ax.get_indexer_for(key) < 0):
1393
1394 raise KeyError("None of [%s] are in the [%s]" %
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/indexes/base.py in get_indexer_for(self, target, **kwargs)
2384 """ guaranteed return of an indexer even when non-unique """
2385 if self.is_unique:
-> 2386 return self.get_indexer(target, **kwargs)
2387 indexer, _ = self.get_indexer_non_unique(target, **kwargs)
2388 return indexer
/home/MBIAL/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/indexes/base.py in get_indexer(self, target, method, limit, tolerance)
2284 'backfill or nearest reindexing')
2285
-> 2286 indexer = self._engine.get_indexer(target._values)
2287
2288 return _ensure_platform_int(indexer)
pandas/index.pyx in pandas.index.IndexEngine.get_indexer (pandas/index.c:6077)()
pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.lookup (pandas/hashtable.c:14050)()
TypeError: unhashable type
Спасибо
Прия