【问题标题】:Convert string formatted as Pandas DataFrame into an actual DataFrame将格式化为 Pandas DataFrame 的字符串转换为实际的 DataFrame
【发布时间】:2023-03-13 07:06:01
【问题描述】:

我正在尝试将格式化字符串转换为 pandas 数据框。

[['CD_012','JM_022','PT_011','CD_012','JM_022','ST_049','MB_021','MB_021','CB_003'
,'FG_031','PC_004'],['NL_003','AM_006','MB_021'],
['JA_012','MB_021','MB_021','MB_021'],['JU_006'],
['FG_002','FG_002','CK_055','ST_049','NM_004','CD_012','OP_002','FG_002','FG_031',
'TG_005','SP_014'],['FG_002','FG_031'],['MD_010'],
['JA_012','MB_021','NL_003','MZ_020','MB_021'],['MB_021'],['PC_004'],
['MB_021','MB_021'],['AM_006','NM_004','TB_006','MB_021']]

我正在尝试使用pandas.DataFrame 方法来执行此操作,但结果是整个字符串被放置在DataFrame 中的一个元素内。

【问题讨论】:

  • 预期输出是多少?
  • 预期输出应该是一个DataFrame,括号中的所有项集作为元素
  • 我们理解但向我们展示上述示例数据应该是您的预期输出
  • array = [[][]....[][]] df = pd.DataFrame(array)
  • @AkshayNevrekar 我不明白这个问题。我将尝试尽可能清楚地解释这一点。由于我已将字符串格式化为 DataFrame,因此我想尝试将所有元素插入 DataFrame。在这种情况下,一个元素沿着['CD_012','JM_022','PT_011','CD_012','JM_022','ST_049','MB_021','MB_021','CB_003' ,'FG_031','PC_004'],['NL_003','AM_006','MB_021'] 的行。当我尝试这样做时,数据仅插入到 DataFrame 的一条记录中。

标签: python string pandas dataframe fpgrowth


【解决方案1】:

最好的方法是用 '],[' 分隔符分割字符串,然后转换为 df。


import numpy as np
import pandas as pd

def stringToDF(s):
    array = s.split('],[')

    # Adjust the constructor parameters based on your string
    df = pd.DataFrame(data=array,    
              #index=array[1:,0],    
             #columns=array[0,1:]
             ) 

    print(df)
    return df

stringToDF(s)

祝你好运!

【讨论】:

  • 我尝试了这种方法,但它给我留下了一个浮点类型的数组:1.40819e-76 5.59823e+25 1.57287e+131 6.6563e-120 5.22844e-76
  • 我将其更改为将字符串指定为 dtype。立即尝试
  • 刚试了一下,在将字符串转换为数组时出现错误ValueError: zero-valued itemsize
  • 阵列的预期形状是什么?喜欢 1x2?
  • 我在想如果有意义的话,它将是 1x(数组中的元素数量)。抱歉描述不佳,但我还是 Python 新手
【解决方案2】:

这是你的意思吗?

import pandas as pd


list_of_lists = [['CD_012','JM_022','PT_011','CD_012','JM_022','ST_049','MB_021','MB_021','CB_003'
                ,'FG_031','PC_004'],['NL_003','AM_006','MB_021'],
                ['JA_012','MB_021','MB_021','MB_021'],['JU_006'],
                ['FG_002','FG_002','CK_055','ST_049','NM_004','CD_012','OP_002','FG_002','FG_031',
                'TG_005','SP_014'],['FG_002','FG_031'],['MD_010'],
                ['JA_012','MB_021','NL_003','MZ_020','MB_021'],['MB_021'],['PC_004'],
                ['MB_021','MB_021'],['AM_006','NM_004','TB_006','MB_021']]


result = pd.DataFrame({'result': list_of_lists})

【讨论】:

  • 在我的例子中,变量 list_of_lists 是字符串类型。这就是问题所在。
猜你喜欢
  • 2017-06-04
  • 1970-01-01
  • 2020-04-12
  • 2020-11-20
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
相关资源
最近更新 更多