Панды: Невозможно объединить текстовые столбцы

Я хочу объединить все текстовые столбцы моего фрейма данных, чтобы я мог поместить это в CountVectorizer,

def populate_distance_metrics(in_df, col_list, prim_col):

    vect_data=in_df[col_list[0]].map(str)
    print (type(vect_data))
    for col,idx in enumerate(col_list):
        if idx==0:
            continue;
        vect_data = vect_data + " " + in_df[col]

    cv = CountVectorizer(stop_words='english', max_features=1000)
    # Learn a vocabulary dictionary of all tokens 
    cv.fit(vect_data)
    print ('cv fit')

in_df является исходным фреймом данных и col_list это массив, такой как ['a','b','c',...] и я хочу сохранить эту гибкость. тип

vect_data=in_df[col_list[0]].map(str)

является

<class 'pandas.core.series.Series'>

вышеприведенный код не работает в vect_data = vect_data + " " + in_df[col]

vect_data = vect_data + " " + in_df[col]
  File "asd/asd/dsfg/lib/python3.6/site-packages/pandas/core/frame.py", line 2059, in __getitem__
    return self._getitem_column(key)
  File "asd/asd/dsfg/lib/python3.6/site-packages/pandas/core/frame.py", line 2066, in _getitem_column
    return self._get_item_cache(key)
  File "asd/asd/dsfg/lib/python3.6/site-packages/pandas/core/generic.py", line 1386, in _get_item_cache
    values = self._data.get(item)
  File "asd/asd/dsfg/lib/python3.6/site-packages/pandas/core/internals.py", line 3543, in get
    loc = self.items.get_loc(item)
  File "asd/asd/dsfg/lib/python3.6/site-packages/pandas/indexes/base.py", line 2136, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas/index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)

  File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)

  File "pandas/src/hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13742)

  File "pandas/src/hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13696)

KeyError: 0

Тем не менее, это работает, когда я делаю

cv.fit(in_df['a']+ ' '+ in_df['b']+ in_df['c'])

Что я делаю неправильно?

0 ответов

Другие вопросы по тегам