来自原始字符串的Pandas DataFrame

P. *_*lar 3 python string dataframe pandas

我有一个字符串,看起来像:

a1\tb1\tc1\na2\tb2\tc2\na3\tb3\tc3\n...
Run Code Online (Sandbox Code Playgroud)

有没有一种有效而智能的方法将这种字符串转换为Pandas DataFrame?StringIO似乎不适合这种方法.

提前致谢!!

cs9*_*s95 7

StringIO 工作得很好.

import io

string = 'a1\tb1\tc1\na2\tb2\tc2\na3\tb3\tc3'
pd.read_csv(io.StringIO(string), delim_whitespace=True, header=None)

    0   1   2
0  a1  b1  c1
1  a2  b2  c2
2  a3  b3  c3
Run Code Online (Sandbox Code Playgroud)

您也可以使用pd.read_tablepd.read_fwf以相同的方式:

pd.read_table(io.StringIO(string), header=None)
Run Code Online (Sandbox Code Playgroud)

要么,

pd.read_fwf(io.StringIO(string), header=None)
Run Code Online (Sandbox Code Playgroud)

    0   1   2
0  a1  b1  c1
1  a2  b2  c2
2  a3  b3  c3
Run Code Online (Sandbox Code Playgroud)

在最后两个例子中,假设空格是自然分隔符.但是,原始字符串必须在数据中保持一致的结构.


最后,您还可以使用字符串拆分方法,先在换行符上拆分,然后在选项卡上拆分:

pd.DataFrame(list(map(str.split, string.splitlines())))

    0   1   2
0  a1  b1  c1
1  a2  b2  c2
2  a3  b3  c3
Run Code Online (Sandbox Code Playgroud)