有 n
个数据帧,有n
个City
列。你知道吗
df1型:
ID City City1 City2 .... CityN
444x Lima DC
222x Rica Dallas
555x Rio London
333x NYC Tokyo
777x SF Nairobi
df2型:
ID City City1 City2 .... CityN
000x Lima Miami
888x Cct Texas
999x Delhi
444x Tokyo Ktm
333x Aus Paris
dfN公司:
ID City City1 City2 .... CityN
444x Lima DC
333x Rica Dallas
555x Rio London
666x NYC Tokyo
777x SF Nairobi
我尝试过一个接一个地合并数据帧,但是City
列值被最后一个数据帧值覆盖。你知道吗
dfOutput=df1.merge(df2, how='left', on='ID')
我想要的是保留所有这些City1, City2, ...CityN
列值。我在下面列出了示例输出。你知道吗
ID City1 City2 City3 City4 City5 City6
444x Tokyo Lima DC Miami Ktm
333x NYC Tokyo Aus Paris Rica Dallas
对于剩余的IDs
,依此类推。我还尝试使用SO中另一个问题提供的groupbyID
。你知道吗
cities = df.groupby('ID')['City'].apply(lambda x: pd.Series([city for city in x])).unstack()
谢谢你的帮助。你知道吗
IIUC您可以使用
pd.merge
而不使用left
参数:然后可以为生成的数据帧重命名列:
相关问题 更多 >
编程相关推荐