我有两个不同ID的数据框
global_duns name vendor_duns
0 9581091 Name1 53506312
1 9581091 Name2 961273620
2 79735371 Name3 53506312
3 79735371 Name4 79735371
4 79735371 Name5 135962137
您可以看到供应商ID 53506312与两个全局变量duns相关联。
我想把它压成一排。
global1 global2 vendor1 vendor2 vendor3
9581091 79735371 53506312 961273620 135962137
这只是一个假设,一家公司可能拥有x个全局数和多个供应商。
以下是创建数据框的代码。
global_duns = [9581091, 9581091, 79735371, 79735371, 79735371]
duns = [53506312, 961273620, 53506312, 79735371, 135962137]
names = ['Name1',
'Name2',
'Name3',
'Name4',
'Name5']
df = pd.DataFrame({'global_duns': global_duns, 'vendor_duns': duns, 'name': names})
答案 0 :(得分:1)
这是使用stack()和Transpose
的一种方法df1 = pd.DataFrame(df.drop('name', axis = 1).stack().drop_duplicates()).T
df1.columns = df1.columns.tolist()
这给出了
(0, global_duns) (0, vendor_duns) (1, vendor_duns) (2, global_duns) (4, vendor_duns)
0 9581091 53506312 961273620 79735371 135962137
当前元组提供了多索引数据帧的两个级别的精确组合。如果您想重命名
df1.columns = ['global1', 'vendor1', 'vendor2', 'global2', 'vendor3']
你会得到
global1 vendor1 vendor2 global2 vendor3
0 9581091 53506312 961273620 79735371 135962137