Python技巧分享之如何將字符串轉(zhuǎn)回DataFrame格式
前言
平常我們使用pandas,一般使用的是DataFrame和Series,但個別交換數(shù)據(jù)的時候,只能使用字符串,我們需要將df轉(zhuǎn)為字符串輸出。但交換完的數(shù)據(jù),我們又需要將字符串再轉(zhuǎn)回DataFrame格式,這個怎么辦呢?
下文我們就來看看,如何處理?文中df代表DataFrame數(shù)據(jù)。
一、兩行語句搞定數(shù)據(jù)轉(zhuǎn)換
1.df轉(zhuǎn)為字符串
dfstr = df.to_string()
2.字符串轉(zhuǎn)為df
df2 = pd.read_csv(StringIO(dfstr), sep=‘\s+’)
注:這里前提是str的確是df的數(shù)據(jù)組織方式。
二、使用方法示例
文中為了方便展示表格,使用了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數(shù)據(jù)類型:\n',type(dfstr)) print('\ndfstr數(shù)據(jù)內(nèi)容:\n',dfstr) df2 = pd.read_csv(StringIO(dfstr), sep='\s+') print('\ndf2數(shù)據(jù)類型:\n',type(df2)) print('\ndf2數(shù)據(jù)內(nèi)容:\n',df2) df_table(df2,'dfstr轉(zhuǎn)df')
執(zhí)行結(jié)果如下:
+--------+---+---+
| 原始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數(shù)據(jù)類型: <class 'str'>
dfstr數(shù)據(jù)內(nèi)容:
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數(shù)據(jù)類型: <class 'pandas.core.frame.DataFrame'>
df2數(shù)據(jù)內(nèi)容:
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轉(zhuǎn)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 |
+-----------+---+---+
請按任意鍵繼續(xù). . .
總結(jié)
將DataFrame轉(zhuǎn)化為str進(jìn)行數(shù)據(jù)交換,但最終我們還是需要使用DataFrame來處理數(shù)據(jù)。在轉(zhuǎn)換回DataFrame時,要注意str的存儲內(nèi)容依然保持DataFrame的格式形式,否則將引起轉(zhuǎn)換異常。
使用以上方法,一般來說都不會有什么問題。如果系統(tǒng)已自動轉(zhuǎn)為字符串,也可以使用步驟2轉(zhuǎn)化為DataFrame。
到此這篇關(guān)于Python技巧分享之如何將字符串轉(zhuǎn)回DataFrame格式的文章就介紹到這了,更多相關(guān)Python字符串轉(zhuǎn)DataFrame內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中l(wèi)ist列表添加元素的3種方法總結(jié)
這篇文章主要介紹了Python中l(wèi)ist列表添加元素的3種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01python二進(jìn)制轉(zhuǎn)換模塊的具體用法
在pyton中,通過struct模塊來對二進(jìn)制進(jìn)行轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01使用Python實現(xiàn)對PDF文件進(jìn)行密碼保護
這篇文章主要為大家詳細(xì)了如何使用Python來實現(xiàn)PDF文件的密碼保護,以確保只有授權(quán)的用戶可以訪問文檔,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2024-01-01pandas的object對象轉(zhuǎn)時間對象的方法
下面小編就為大家分享一篇pandas的object對象轉(zhuǎn)時間對象的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04