为了账号安全,请及时绑定邮箱和手机立即绑定

使用条件创建数据框

使用条件创建数据框

Smart猫小萌 2021-12-26 15:36:39
我已经构建了一个数据框,表示航班字符串和该字符串中的航班。这是获取实际数据帧的代码(仅供参考):string = 0;d = []for i in data_file.index:    for j in data_file.index:        list_strings = find_all_paths(graph,i,j)        for k in range(len(list_strings)):            string = string + 1;            for m in range(len(list_strings[k])):                d.append({'path':list_strings[k][m],'string': string})我要解决的问题:这段代码的结果如下(一个示例,因为它很大):path  string-------------0       11       12       10       22       34       3...    ...结果表示:字符串 1 是:首先运行航班 1,然后是航班 1,最后是航班 2。字符串 2 是航班 0,然后是航班 2。我想获得一个包含字符串极端的数据帧,这是字符串的第一次和最后一次飞行。预期结果:string  first   last---------------------1        0       22        0       03        2       4...     ...     ...    
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

你可以用pd.concat()与groupby():


pd.concat([df.groupby('string').first(), df.groupby('string').last()], axis=1)

产量:


        path  path

string            

1          0     2

2          0     0

3          2     4


查看完整回答
反对 回复 2021-12-26
?
jeck猫

TA贡献1909条经验 获得超7个赞

尝试:


print(df.groupby('string')['path'].agg(['first','last']))

        first last

string           

1.0        0    2

2.0        0    0

3.0        2    4


查看完整回答
反对 回复 2021-12-26
  • 2 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号