考虑下面的DF
df_dict = {'name': {0: ' john',
1: ' john',
4: ' daphne '},
'address': {0: 'johns address',
1: 'johns address',
4: 'daphne address'},
'phonenum1': {0: 7870395,
1: 7870450,
4: 7373209},
'phonenum2': {0: None, 1: 123450 , 4: None},
'phonenum3': {0: None, 1: 123456, 4: None}
}
df = pd.DataFrame(df_dict)
name address phonenum1 phonenum2 phonenum3
0 john johns address 7870395 NaN NaN
1 john johns address 7870450 123450.0 123456.0
4 daphne daphne address 7373209 NaN NAN
如何取消phonenum
数据的堆栈,以便在找到相同全名和地址的条目时,输出如下所示
name address phonenum1 phonenum2 phonenum3 phonenum4
0 john johns address 7870395 7870450 123450.0 123456.0
4 daphne daphne address 7373209 NaN NaN NaN
您可以使用
set_index
和stack
,然后使用每个名称和地址groupby.cumcount
来获取后面的列名,然后使用unstack
和reset_index
和rename_axis
来进行化妆按照代码的方式,您可以在关闭括号之前从第二行注释到最后一行,然后逐个取消注释每一行,以查看每次都发生了什么
我相信下面的代码将完成您试图完成的任务。它应该能够处理4个以上的电话号码以防万一
相关问题 更多 >
编程相关推荐