我有一个熊猫数据框,看起来像这样:
df = pd.DataFrame(data={
'dep': ["NYC", "PAR", "MAD"],
'arr': ["PAR", "SYD", "BCN"],
'ID': ["idx1", "idx1", "idx2"],
'step':[1, 2, 1]})
dep arr ID step
NYC PAR idx1 1
PAR SYD idx1 2
MAD BCN idx2 1
我想添加一列“itinerary”,它按“ID”(它是“键”)对数据进行分组,并根据step
列告知行程,而不聚合行
因此,输出将是:
dep arr ID step itinerary
NYC PAR idx1 1 NYC-PAR-SYD
PAR SYD idx1 2 NYC-PAR-SYD
MAD BCN idx2 1 MAD-BCN
我开始尝试使用df.groupby('ID')
,然后按step
排序,但我还没有弄明白如何根据两个不同行的两列创建值(一行的arr是另一行的dep),如何连接组中所有行的值?
谢谢你的帮助
通过
groupby()
、map()
、agg()
和join()
尝试:df
的输出:更新:
我不认为这是有效的,但可以做到:
最后:
Groupby
ID
然后将每个dep
和arr
列转换为列表,最后添加它们以获得单个列表,但在添加检查项时,如果给定索引的dep
列中已经存在,则可以使用列表理解,最后连接字符串,重命名列,最后将其返回原始数据帧输出:
然后可以更改列名
相关问题 更多 >
编程相关推荐