【问题标题】:Convert a tab- and newline-delimited string to pandas dataframe将制表符和换行符分隔的字符串转换为 pandas 数据框
【发布时间】:2019-06-03 19:20:06
【问题描述】:

我有一个如下格式的字符串:

aString = '123\t456\t789\n321\t654\t987 ...'

我想将其转换为 pandas DataFrame

frame:
  123 456 789
  321 654 987
  ...

我已尝试将其转换为 Python 列表:

stringList = aString.split('\n')

导致:

stringList = ['123\t456\t789',
              '321\t654\t987',
              ...
             ]

不知道下一步该做什么。

【问题讨论】:

    标签: pandas list dataframe


    【解决方案1】:

    一种选择是使用str.split 进行列表理解

    pd.DataFrame([x.split('\t') for x in stringList], columns=list('ABC'))
    
         A   B   C
    0   123 456 789
    1   321 654 987
    

    你可以使用StringIO

    from io import StringIO
    pd.read_csv(StringIO(aString), sep='\t', header=None)
    
        0   1   2
    0   123 456 789
    1   321 654 987
    

    【讨论】:

    • 有什么办法不使用for循环,因为字符串包含数万行。
    • 谢谢你,克里斯 :) 它就像一个魅力 :)
    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 2021-12-18
    • 2010-10-19
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2019-08-23
    • 2021-08-20
    相关资源
    最近更新 更多