转换数据框以显示第一,第二和第三个更改

发布于 2025-01-30 11:14:45 字数 1440 浏览 4 评论 0原文

我有一个与此类似的数据框架:

import pandas as pd
records_A = pd.DataFrame({'id': [1001,1001,1001,1001,1002,1002,1002,1003,1003,1003,1004,1005,1006,1006,1006,1006,1006], 
'location': ['NJ','OH','OH','OH','HI','AK','HI','NC','NJ','NJ','PA','UT','AZ','AZ','AZ','AZ','AZ'],
                     'date': ['1/1','4/1','6/1','7/11','1/1','4/1','6/1','1/1','4/1','6/1','1/1','1/1','1/1','2/2','7/3','9/9','12/10']})


我很想将其转换为每个ID的一行,列显示了第一个,第二和第三位置,以及这些位置的开始日期(如果存在)。奖励积分如果代码可以容纳3个以上的位置(即,添加和命名尽可能多的列)。

预期输出将为:

ID第一位置1个位置开始日期2nd位置2ndlocation开始日期3rdlocation3rd位置开始日期
1001NJ1/1OH4/1NANNAN NAN
1002HI1/1AK4/1 AK 4/1HIHI 6/1
6/1 1003NC1/ 1NJ4/1NanNan
1004PA1/1NanNan NanNanNan
1005UT1/1NanNan NanNan NanNan
1006AZ1/1NanNan Nan Nan Nan Nan NanNanNan

I have a dataframe similar to this:

import pandas as pd
records_A = pd.DataFrame({'id': [1001,1001,1001,1001,1002,1002,1002,1003,1003,1003,1004,1005,1006,1006,1006,1006,1006], 
'location': ['NJ','OH','OH','OH','HI','AK','HI','NC','NJ','NJ','PA','UT','AZ','AZ','AZ','AZ','AZ'],
                     'date': ['1/1','4/1','6/1','7/11','1/1','4/1','6/1','1/1','4/1','6/1','1/1','1/1','1/1','2/2','7/3','9/9','12/10']})


I would love to transform it to see a single row for each id, with columns showing the first, second, and third locations, along with the start date of each of those locations, if they exist. Bonus points if the code could accommodate even more than 3 locations (ie., add and name as many columns as necessary).

Expected output would be:

id1st location1st location start date2nd location2ndlocation start date3rdlocation3rd location start date
1001NJ1/1OH4/1nannan
1002HI1/1AK4/1HI6/1
1003NC1/1NJ4/1nannan
1004PA1/1nannannannan
1005UT1/1nannannannan
1006AZ1/1nannannannan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文