首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建带有条件的数据文件

创建带有条件的数据文件
EN

Stack Overflow用户
提问于 2019-04-02 16:41:28
回答 2查看 54关注 0票数 0

我已经构建了一个表示飞行字符串和该字符串中的航班的数据格式。

这是用于获取实际数据的代码(仅用于信息目的的):

代码语言:javascript
运行
复制
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})

我想解决的问题:这段代码的结果如下(一个示例,因为它很大):

代码语言:javascript
运行
复制
path  string
-------------
0       1
1       1
2       1
0       2
2       3
4       3
...    ...

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

我想得到一个包含字符串极值的数据,这是字符串的第一次也是最后一次。

预期结果:

代码语言:javascript
运行
复制
string  first   last
---------------------
1        0       2
2        0       0
3        2       4
...     ...     ...    
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-02 16:52:48

您可以将pd.concat()groupby()结合使用

代码语言:javascript
运行
复制
pd.concat([df.groupby('string').first(), df.groupby('string').last()], axis=1)

产量:

代码语言:javascript
运行
复制
        path  path
string            
1          0     2
2          0     0
3          2     4
票数 1
EN

Stack Overflow用户

发布于 2019-04-02 16:57:41

试着:

代码语言:javascript
运行
复制
print(df.groupby('string')['path'].agg(['first','last']))
代码语言:javascript
运行
复制
        first last
string           
1.0        0    2
2.0        0    0
3.0        2    4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55479752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档