首页 > 解决方案 > 将 2 秒顺序数组转换为 pandas 数据帧

问题描述

我有一个具有任意长度的二阶数组的数据集。如下所示

 [['15,39' '17,43']
  ['23,40' '18,44']
  ['28,41' '18,45']
  ['28,42' '27,46']
  ['34,43' '26,47']
  .
  .
  .
                   ]

我想把它变成一个熊猫数据框作为列和行,如下所示

15 39 17 43
23 40 18 44
28 41 18 45
28 42 27 46
34 43 26 47
.
.
.

任何人都知道如何在不将数据保存到文件中的情况下实现它?

标签: pythonpandasdataframe

解决方案


您的数据:

from io import StringIO

s="""[['15,39' '17,43']
['23,40' '18,44']
['28,41' '18,45']
['28,42' '27,46']
['34,43' '26,47']]"""
df=pd.read_csv(StringIO(s),header=None)

你可以做:

d={"\[\['":"","'\]\]":"","'\]\]'":"","'\]":"","\['":"","' '":','}
df=df.replace(d,regex=True)
df[[1.2,1.5]]=df.pop(1).str.extract(r"(\d+),(\d+)")
df=df.sort_index(axis=1)

输出df

    0.0     1.2     1.5     2.0
0   15      39      17      43
1   23      40      18      44
2   28      41      18      45
3   28      42      27      46
4   34      43      26      47

当然,您可以根据需要使用columns属性或方法重命名列的名称,并根据需要使用方法对rename()数据进行类型转换astype()


推荐阅读