前言
平常我们使用pandas,一般使用的是DataFrame和Series,但个别交换数据的时候,只能使用字符串,我们需要将df转为字符串输出。但交换完的数据,我们又需要将字符串再转回DataFrame格式,这个怎么办呢?
下文我们就来看看,如何处理?文中df代表DataFrame数据。
一、两行语句搞定数据转换
-
df转为字符串
dfstr = df.to_string() -
字符串转为df
df2 = pd.read_csv(StringIO(dfstr), sep=‘\s+’)
注:这里前提是str的确是df的数据组织方式。
二、使用方法示例
文中为了方便展示表格,使用了prettytable,如果报错没有该模块,使用如下语句安装即可。
pip install prettytable
完整演示代码如下:
# ===============表格美化输出===============
def df_table(df,index):
import prettytable as pt
tb = pt.PrettyTable()
tb.add_column(index,df.index)
for col in df.columns.values:
tb.add_column(col, df[col])
print(tb)
import pandas as pd
from io import StringIO
df = pd.DataFrame({'A' : ['1', '2', '3', '4'] * 3,
'B' : ['A', 'B', 'C'] * 4})
df_table(df,'原始df')
dfstr = df.to_string()
print('\ndfstr数据类型:\n',type(dfstr))
print('\ndfstr数据内容:\n',dfstr)
df2 = pd.read_csv(StringIO(dfstr), sep='\s+')
print('\ndf2数据类型:\n',type(df2))
print('\ndf2数据内容:\n',df2)
df_table(df2,'dfstr转df')
执行结果如下:
+--------+---+---+
| 原始df | A | B |
+--------+---+---+
| 0 | 1 | A |
| 1 | 2 | B |
| 2 | 3 | C |
| 3 | 4 | A |
| 4 | 1 | B |
| 5 | 2 | C |
| 6 | 3 | A |
| 7 | 4 | B |
| 8 | 1 | C |
| 9 | 2 | A |
| 10 | 3 | B |
| 11 | 4 | C |
+--------+---+---+
dfstr数据类型: <class 'str'>
dfstr数据内容:
A B
0 1 A
1 2 B
2 3 C
3 4 A
4 1 B
5 2 C
6 3 A
7 4 B
8 1 C
9 2 A
10 3 B
11 4 C
df2数据类型: <class 'pandas.core.frame.DataFrame'>
df2数据内容:
A B
0 1 A
1 2 B
2 3 C
3 4 A
4 1 B
5 2 C
6 3 A
7 4 B
8 1 C
9 2 A
10 3 B
11 4 C
+-----------+---+---+
| dfstr转df | A | B |
+-----------+---+---+
| 0 | 1 | A |
| 1 | 2 | B |
| 2 | 3 | C |
| 3 | 4 | A |
| 4 | 1 | B |
| 5 | 2 | C |
| 6 | 3 | A |
| 7 | 4 | B |
| 8 | 1 | C |
| 9 | 2 | A |
| 10 | 3 | B |
| 11 | 4 | C |
+-----------+---+---+
请按任意键继续. . .
总结
将DataFrame转化为str进行数据交换,但最终我们还是需要使用DataFrame来处理数据。在转换回DataFrame时,要注意str的存储内容依然保持DataFrame的格式形式,否则将引起转换异常。文章来源:https://www.toymoban.com/news/detail-821885.html
使用以上方法,一般来说都不会有什么问题。如果系统已自动转为字符串,也可以使用步骤2转化为DataFrame。文章来源地址https://www.toymoban.com/news/detail-821885.html
到了这里,关于【Python小技巧】df转字符串用df.to_string(),字符串转换回DataFrame怎么办?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!