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似乎不适合这种方法.
提前致谢!!
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_table或pd.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)