首页 > 解决方案 > 在熊猫数据框中将列拆分为具有不同长度的多列

问题描述

我想根据长度将熊猫数据框中的一列拆分为多列。我有一个 csv 文件,它告诉我需要拆分多少列以及每列的长度。当我想进行拆分时,我需要参考这个文件。

csv文件内容

col |length
id |2
name|5
desc|6

示例输入

   value
0  01applefruits
1  02pearsfruits
2  03peachfruits

输出 = id - 长度为 2,名称 - 长度为 5,desc - 长度为 6

  id   name    desc
0  01  apple  fruits
1  02  pears  fruits
2  03  peach  fruits

以上只是一个示例。我如何能够拥有一个通用代码,可以将一列拆分为熊猫数据框中的多列?

任何帮助表示赞赏。谢谢!

标签: python-3.xpandasdataframe

解决方案


read_fwfwidths参数一起使用。

假设文件格式如下:

>>> %cat 'format.csv'
col,length
id,2
name,5
desc,6

>>> %cat 'data.csv'
value
01applefruits
02pearsfruits
03peachfruits
fmt = pd.read_csv('format.csv')

df = pd.read_fwf('data.csv', skiprows=1, header=None,
                 names=fmt['col'].tolist(),
                 widths=fmt['length'].tolist())
>>> df
   id   name    desc
0   1  apple  fruits
1   2  pears  fruits
2   3  peach  fruits

推荐阅读