【问题标题】:Convert a string into a dataframe in Python在 Python 中将字符串转换为数据框
【发布时间】:2022-10-21 22:33:23
【问题描述】:

我有一个看起来像这样的字符串。

x = 24.55 26.22, 69.22 78.25, 66.25 45.98

我想转换成如下所示的数据框:

  A       B      A     B      A      B
24.55   26.22  69.22  78.25  66.25  45.98

这是我尝试过的,但出现错误。

import io
import pandas as pd
df1 = pd.read_csv(io.StringIO(x), sep=",")
df1 =  df1.groupby(level=[0,1]).cumcount().map({0 : 'x', 1 : 'y'})

【问题讨论】:

  • 你得到什么错误?确切的错误信息是什么?你能add它来回答你的问题吗? (但 ********没有******** "Edit:"、"Update:" 或类似的 - 问题应该看起来好像是今天写的)

标签: python pandas string dataframe numpy


【解决方案1】:

您可以使用双重拆分 stack 并重塑为 DataFrame:

x = '24.55 26.22, 69.22 78.25, 66.25 45.98'

out = (pd
       .DataFrame([map(float, s.split()) for s in x.split(',')],
                  columns=['A', 'B'])
       .stack().droplevel(0)
       .to_frame().T
      )

输出:

       A      B      A      B      A      B
0  24.55  26.22  69.22  78.25  66.25  45.98

如果您已经知道项目的数量:

pd.DataFrame([[float(e) for s in x.split(',') for e in s.split()]],
             columns=['A', 'B']*3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    相关资源
    最近更新 更多