我拥有的数据:
df = pd.DataFrame(pd.DataFrame([('Bus Route A', 'Beach Station'),
('Bus Route B', 'Village Hotel '),
('Bus Route A', 'Amara Sanctuary Resort'),
('Bus Route C', 'Village Hotel '),
('Bus Route B', 'Beach Station'),
('Bus Route C', 'Beach Station')]))

我需要的是:
[('Beach Station',1,1,1),('Village Hotel ',0,1,1), ( 'Amara Sanctuary Resort',1,0,0)]
发布于 2021-09-17 06:32:24
将crosstab与comapre一起用于更大或相等的1,并将掩码转换为整数:
df = pd.crosstab(df[1], df[0]).ge(1).astype(int)
print (df)
0 Bus Route A Bus Route B Bus Route C
1
Amara Sanctuary Resort 1 0 0
Beach Station 1 1 1
Village Hotel 0 1 1
print (df.reset_index().apply(tuple, axis=1).tolist())
[('Amara Sanctuary Resort', 1, 0, 0),
('Beach Station', 1, 1, 1),
('Village Hotel ', 0, 1, 1)]https://stackoverflow.com/questions/69218714
复制相似问题