Разобрать столбец dataframe для создания нового dataframe - PullRequest
0 голосов
/ 04 января 2019

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

Это одно из значений столбца выглядит следующим образом:

{'BikeParking': 'False', 'BusinessAcceptsCreditCards': 'True', 'BusinessParking': "{'garage': False, 'street': True, 'validated': False, 'lot': False, 'valet': False}", 'GoodForKids': 'True', 'HasTV': 'True', 'NoiseLevel': 'average', 'OutdoorSeating': 'False', 'RestaurantsAttire': 'casual', 'RestaurantsDelivery': 'False', 'RestaurantsGoodForGroups': 'True', 'RestaurantsPriceRange2': '2', 'RestaurantsReservations': 'True', 'RestaurantsTakeOut': 'True'}

Не все столбцы имеют одинаковые атрибуты.Пожалуйста, помогите, я новичок в Python.

Ответы [ 3 ]

0 голосов
/ 04 января 2019

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

def _parsing_function(row):
    // column containing nested values
    dict = row['column_name']
    for key in dict:
        'do something'
        return 'new column value'

frame['new_column'] = frame.apply(_parsing_function, axis=1)
0 голосов
/ 04 января 2019

Чтобы найти словари в вашем существующем столбце данных и создать новые кадры данных, вы можете перебрать свой столбец и создать необходимые кадры данных:

new_dfs = []   # list of new dataframes from dictionaries in existing column
for elem in df['column_name']:
    if type(elem) is dict:
        new_dfs.append(pd.DataFrame(elem))  # add to list of created dataframes
0 голосов
/ 04 января 2019

Если ваш dict не является вложенным, сработает следующее.

pd.DataFrame(list(df['column_name'])

Если у вас есть вложенные дикты, попробуйте повторить вышеописанное для вложенных диктов.

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