0
有n
数据帧数n
City
列数。熊猫 - 合并和Groupby不同的数据帧并创建新列
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
我曾尝试合并dataframes一个接一个,但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()
感谢您的帮助。
哪里是KTM为444X? – itzy
谢谢@itzy,编辑它。我有一些敏感的值,所以必须使用占位符值。 – everestbaker
看起来你只想为每个ID设定独特的城市。可能会更简单,只需遍历行并将值读入字典中,然后在最后创建一个DataFrame。 – itzy