将制表符和换行符分隔的字符串转换为 pandas 数据框

Posted

技术标签:

【中文标题】将制表符和换行符分隔的字符串转换为 pandas 数据框【英文标题】:Convert a tab- and newline-delimited string to pandas dataframe 【发布时间】: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',
              ...
             ]

不知道下一步该做什么。

【问题讨论】:

【参考方案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循环,因为字符串包含数万行。 谢谢你,克里斯 :) 它就像一个魅力 :)

以上是关于将制表符和换行符分隔的字符串转换为 pandas 数据框的主要内容,如果未能解决你的问题,请参考以下文章

CSV文件转换帮助类

将制表符分隔的文本转换为数组[重复]

c#处理空白字符

Bash将多行字符串转换为单个换行符分隔的字符串[重复]

notepad++如何批量将分隔符前面的内容替换为分隔符后面的内容

存储为CSV