我已經(jīng)構建了一個數(shù)據(jù)框,表示航班字符串和該字符串中的航班。這是獲取實際數(shù)據(jù)幀的代碼(僅供參考):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})我要解決的問題:這段代碼的結(jié)果如下(一個示例,因為它很大):path string-------------0 11 12 10 22 34 3... ...結(jié)果表示:字符串 1 是:首先運行航班 1,然后是航班 1,最后是航班 2。字符串 2 是航班 0,然后是航班 2。我想獲得一個包含字符串極端的數(shù)據(jù)幀,這是字符串的第一次和最后一次飛行。預期結(jié)果:string first last---------------------1 0 22 0 03 2 4... ... ...
2 回答

慕妹3242003
TA貢獻1824條經(jīng)驗 獲得超6個贊
你可以用pd.concat()與groupby():
pd.concat([df.groupby('string').first(), df.groupby('string').last()], axis=1)
產(chǎn)量:
path path
string
1 0 2
2 0 0
3 2 4

jeck貓
TA貢獻1909條經(jīng)驗 獲得超7個贊
嘗試:
print(df.groupby('string')['path'].agg(['first','last']))
first last
string
1.0 0 2
2.0 0 0
3.0 2 4
添加回答
舉報
0/150
提交
取消