首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据模式数组将熊猫数据的每一行切分

根据模式数组将熊猫数据的每一行切分
EN

Stack Overflow用户
提问于 2022-06-26 02:50:30
回答 3查看 70关注 0票数 1

我需要在不同的位置分割一串熊猫,我想用矢量化的方法。有人能帮我吗?每一行都有这样的模式:

代码语言:javascript
运行
复制
012016010402AAPL34      010APPLE       DRN          R$  000000000415000000000042200000000004150000000000421300000000042080000000003950000000000435000005000000000000012500000000000052664400000000000000009999123100000010000000000000BRAAPLBDR004115

这一行有26个由字符分隔的不同信息,例如:

代码语言:javascript
运行
复制
['01', '2016/01/04', '02', 'AAPL34      ', ...,'115']

每个数据的字符串位置由以下数组定义:[0,2,10,12,24,27,39,49,52,56,69,82,95,108,121,134,147,152,170,188,201,202,210,217,230,242,245]

我试图将此函数与dataframe一起使用,但没有成功:

代码语言:javascript
运行
复制
def row_slice(s,indices):
    return pd.Series([s[i:j] for i,j in zip(indices, indices[1:]+[None])])

我使用的数据可以通过这个链接下载

有人能帮我吗?

EN

Stack Overflow用户

发布于 2022-06-26 03:07:48

看起来您需要pandas.read_fwf,直接读取您的文件:

代码语言:javascript
运行
复制
l = [0,2,10,12,24,27,39,49,52,56,69,82,95,108,121,134,147,152,170,188,201,202,210,217,230,242,245]

import numpy as np
df = pd.read_fwf('filename', widths=np.diff(l), header=None)

输出:

代码语言:javascript
运行
复制
   0         1   2       3   4      5    6   7   8     9   ...  16     17  \
0   1  20160104   2  AAPL34  10  APPLE  DRN NaN  R$  4150  ...   5  12500   

         18             19  20        21       22             23  \
0  52664400  000000000000d   i  fferent3  1000000  1000000000000   

             24   25  
0  0BRAAPLBDR00  411  

[1 rows x 26 columns]

使用前导零(作为字符串),添加dtype=str参数:

代码语言:javascript
运行
复制
   0         1   2       3    4      5    6    7   8              9   ...  \
0  01  20160104  02  AAPL34  010  APPLE  DRN  NaN  R$  0000000004150  ...   

      16                  17                  18             19 20        21  \
0  00005  000000000000012500  000000000052664400  000000000000d  i  fferent3   

        22             23            24   25  
0  1000000  1000000000000  0BRAAPLBDR00  411  

[1 rows x 26 columns]
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72758578

复制
相关文章

相似问题

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