объединить два кортежа с различным индексом и различной формой - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть два кортежа, которые мне нравятся в одном, но я всегда получаю много NaN, когда пытаюсь объединить, объединить или присоединиться к ним.

мой кортеж row выглядит так: enter image description here

и мой кортеж row_ges выглядит следующим образом (форма: 5 строк, 6 столбцов): enter image description here

Мне бы хотелось, чтобы это было в одном кадре данных, как эта форма (5 строк, 301 столбец):

enter image description here

я пытался

result=row_ges+row
result_1=row_ges.append(row,ignore_index=True)
result_2 = pd.concat([row_ges,row], axis=1, ignore_index=True)

но я всегда получаю такую ​​форму (10 строк, 301 столбец), а для result_2 я получаю код ошибки, которого не понимаю:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-209-cdc656a8e828> in <module>()
      4 result=row_ges+row
      5 result_1=row_ges.append(row,ignore_index=True)
----> 6 result_2 = pd.concat([row_ges,row], axis=1, ignore_index=True)
      7 
      8 #gesamt = pd.DataFrame()

/usr/local/lib/python3.6/site-packages/pandas/core/reshape/concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy)
    224                        verify_integrity=verify_integrity,
    225                        copy=copy, sort=sort)
--> 226     return op.get_result()
    227 
    228 

/usr/local/lib/python3.6/site-packages/pandas/core/reshape/concat.py in get_result(self)
    421             new_data = concatenate_block_managers(
    422                 mgrs_indexers, self.new_axes, concat_axis=self.axis,
--> 423                 copy=self.copy)
    424             if not self.copy:
    425                 new_data._consolidate_inplace()

/usr/local/lib/python3.6/site-packages/pandas/core/internals.py in concatenate_block_managers(mgrs_indexers, axes, concat_axis, copy)
   5423         blocks.append(b)
   5424 
-> 5425     return BlockManager(blocks, axes)
   5426 
   5427 

/usr/local/lib/python3.6/site-packages/pandas/core/internals.py in __init__(self, blocks, axes, do_integrity_check)
   3280 
   3281         if do_integrity_check:
-> 3282             self._verify_integrity()
   3283 
   3284         self._consolidate_check()

/usr/local/lib/python3.6/site-packages/pandas/core/internals.py in _verify_integrity(self)
   3491         for block in self.blocks:
   3492             if block._verify_integrity and block.shape[1:] != mgr_shape[1:]:
-> 3493                 construction_error(tot_items, block.shape[1:], self.axes)
   3494         if len(self.items) != tot_items:
   3495             raise AssertionError('Number of manager items must equal union of '

/usr/local/lib/python3.6/site-packages/pandas/core/internals.py in construction_error(tot_items, block_shape, axes, e)
   4841         raise ValueError("Empty data passed with indices specified.")
   4842     raise ValueError("Shape of passed values is {0}, indices imply {1}".format(
-> 4843         passed, implied))
   4844 
   4845 

ValueError: Shape of passed values is (301, 29), indices imply (301, 9)

1 Ответ

0 голосов
/ 13 ноября 2018
row.reset_index(drop=True, inplace=True)
row_ges.reset_index(drop=True, inplace=True)
result = pd.concat([row_ges,row], axis=1)

Проблема была в другом индексе.С этим кодом это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...