在Pandas中把相似的行合并成一行

2024-05-01 19:38:07 发布

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

我有下面的数据框nbr

||Postal_Code|Borough|Neighborhood|
|0|M3A|North York|Parkwoods|
|1|M4A|North York|Victoria Village|
|2|M5A|Downtown Toronto|Harbourfront|
|3|M5A|Downtown Toronto|Regent Park|
|4|M6A|North York|Lawrence Heights|
|5|M6A|North York|Lawrence Manor|
|6|M7A|Queen’s Park|Queen’s Park|

我希望运行Python代码,使第4行和第5行合并为1行并返回如下结果:(我尝试过groupby和{}方法,但它们在这里不起作用)

^{pr2}$

代码如下:

nbr1.index = pd.RangeIndex(len(nbr1.index))
More than one neighborhood can exist in one postal code area.

for row_index,row in nbr1.iterrows():
    if(nbr1.loc[row_index,[‘Postal_Code’]].values.astype(‘str’) == nbr1.loc[row_index + 1,[‘Postal_Code’]].values.astype(‘str’)):
        print(‘inside same Postal code’)
        print(nbr1.loc[row_index,[‘Postal_Code’]].values.astype(‘str’))
        print(nbr1.loc[row_index + 1,[‘Postal_Code’]].values.astype(‘str’))

    if(nbr1.loc[row_index,['Borough']].values.astype('str') == nbr1.loc[row_index + 1,['Borough']].values.astype('str')):
        print('inside same Borough')
        print(nbr1.loc[row_index,['Borough']].values.astype('str'))
        print(nbr1.loc[row_index + 1,['Borough']].values.astype('str'))
        print(nbr1.loc[row_index,['Neighborhood']].values.astype('str'))
        print(nbr1.loc[row_index + 1,['Neighborhood']].values.astype('str'))
        print('Adding')
        nbr1[row_index,['Neighborhood']] = nbr1.loc[row_index,['Neighbourhood']].values.astype('str').apply(lambda x: '-'.join(x +1), axis=1)

Tags: parkindexcodelocrowvaluesprintborough