转换数据框以显示第一,第二和第三个更改
我有一个与此类似的数据框架:
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开始日期 | 3rdlocation | 3rd位置开始日期 |
---|---|---|---|---|---|---|
1001 | NJ | 1/1 | OH | 4/1 | NAN | NAN NAN |
1002 | HI | 1/1 | AK | 4/1 AK 4/1 | HI | HI 6/1 |
6/1 1003 | NC | 1/ 1 | NJ | 4/1 | Nan | Nan |
1004 | PA | 1/1 | Nan | Nan Nan | Nan | Nan |
1005 | UT | 1/1 | Nan | Nan Nan | Nan Nan | Nan |
1006 | AZ | 1/1 | Nan | Nan Nan Nan Nan Nan Nan | Nan | Nan |
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:
id | 1st location | 1st location start date | 2nd location | 2ndlocation start date | 3rdlocation | 3rd location start date |
---|---|---|---|---|---|---|
1001 | NJ | 1/1 | OH | 4/1 | nan | nan |
1002 | HI | 1/1 | AK | 4/1 | HI | 6/1 |
1003 | NC | 1/1 | NJ | 4/1 | nan | nan |
1004 | PA | 1/1 | nan | nan | nan | nan |
1005 | UT | 1/1 | nan | nan | nan | nan |
1006 | AZ | 1/1 | nan | nan | nan | nan |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论