使用条件创建数据框

我已经构建了一个数据框,表示航班字符串和该字符串中的航班。


这是获取实际数据帧的代码(仅供参考):


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       1

1       1

2       1

0       2

2       3

4       3

...    ...


结果表示:字符串 1 是:首先运行航班 1,然后是航班 1,最后是航班 2。字符串 2 是航班 0,然后是航班 2。


我想获得一个包含字符串极端的数据帧,这是字符串的第一次和最后一次飞行。


预期结果:


string  first   last

---------------------

1        0       2

2        0       0

3        2       4

...     ...     ...    


Smart猫小萌
浏览 219回答 2
2回答

慕妹3242003

你可以用pd.concat()与groupby():pd.concat([df.groupby('string').first(), df.groupby('string').last()], axis=1)产量:        path  pathstring            1          0     22          0     03          2     4

jeck猫

尝试:print(df.groupby('string')['path'].agg(['first','last']))        first laststring           1.0        0    22.0        0    03.0        2    4
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python