分析dataframe列以创建新的datafram

2024-05-13 19:38:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有列的数据帧,列具有嵌套的属性值对。如何解析这个dataframe列并获取这些值来为它创建一个新的dataframe?你知道吗

这是列值之一,如下所示:

{'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新手。你知道吗


Tags: 数据falsetruestreetdataframe属性lotgarage
3条回答

要在现有的dataframe列中查找字典并生成新的dataframes,可以根据需要迭代列并创建dataframes:

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

如果您的dict不是嵌套的,那么下面的命令将起作用。你知道吗

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

如果有嵌套的dict,请尝试在嵌套的dict上再次执行上述操作。你知道吗

现在还不太清楚您在寻找什么,但是另一个可能有用的方法是使用apply函数来解析dataframe的每一行,从而用结果创建一个新的列。你知道吗

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)

相关问题 更多 >