【问题标题】:How can i convert this lists object into a dataframe?如何将此列表对象转换为数据框?
【发布时间】:2021-07-27 20:24:34
【问题描述】:

我有一些喜欢的东西(称为线条)

['                id\t    Name\t    Type\t      User\t     Q\t             country\t       Final-score\t       Progress\t                       website',
 'abcde\t                 jen\t      engineer\t  jenabc\t           RUNNING\t         UK\t             75%\t                                N/A',
 'fres\t        Penny\t               dr\t     dr123\t           RUNNING\t         DENMARK\t             67%\t                                N/A'] 

语音标记中以“,”分隔的每一行都是数据帧行。但是我无法转换为数据框。

new_df = pd.read_csv(StringIO(",".join(lines[1:])),sep = "\t") 

我做 [1:] 因为第一行只是一个评论。我得到错误:ParserError: Error tokenizing data. C error: Expected 963 fields in line 3, saw 1099

我希望我的 datframe 的第一行是标题,其余的是由 \t 分隔的内容。我该怎么做?

【问题讨论】:

    标签: python html pandas parsing stringio


    【解决方案1】:
    df = pd.read_csv(StringIO("\n".join(lines)), sep=r"\s+")
    print(df)
    

    打印:

          id   Name      Type    User        Q  country Final-score  Progress  website
    0  abcde    jen  engineer  jenabc  RUNNING       UK         75%       NaN      NaN
    1   fres  Penny        dr   dr123  RUNNING  DENMARK         67%       NaN      NaN
    

    【讨论】:

    • ParserError: 标记数据时出错。 C 错误:第 5 行中预期有 11 个字段,看到 12
    • @Maths12 试试df = pd.read_csv(StringIO("\n".join(lines)), sep=r"\s{2,}", engine="python")
    • sep=r"\s{2,}" 是什么意思>
    • @Maths12 这是正则表达式。这意味着分隔符的长度至少为 2 个空白字符。
    • 实际上这对我不起作用我在不同的列中有值,例如一个值应该在 col1 但在 col2 中。如何清除上面的空白?
    猜你喜欢
    • 2020-03-04
    • 1970-01-01
    • 2014-04-15
    • 2018-05-17
    • 2018-12-19
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多