2016-07-07 72 views
1

這感覺就像是我缺少的一個簡單的基本操作?我想將一個數據框的一列寫出到一個文本文件中,手動清理一下,然後將新版本讀回到數據框中(寫入舊數據)。熊貓 - 寫出並讀回一列(導出/導入)

我列的數據寫出來,以CSV,與指數:

df['Systems'].to_csv('systems.csv', index=True) 

前五的CSV行是這樣的:

,Systems 
0,A 
1,B 
2,C 
3,D 
4,E 

現在我想要得到它回到列中,保留索引:

df = pd.read_csv('systems_clean.csv', encoding='utf-8', sep=',', header=1, index_col=1, usecols=['Systems'])) 

任何幫助將不勝感激。道歉,如果這是完全基本的。我一直在尋找小時。

+0

indexing is zero based try'df = pd.read_csv('systems_clean.csv',encoding ='utf-8',sep =',',header = 1,index_col = 0,usecols = ['Systems'] ))' – EdChum

回答

1

索引是從零開始的,實際上很多你通過反正是默認的則params的所以這應該工作:

df = pd.read_csv('systems_clean.csv', encoding='utf-8', index_col=0) 

In [3]: 
import pandas as pd 
import io 
t=""",Systems 
0,A 
1,B 
2,C 
3,D 
4,E""" 
pd.read_csv(io.StringIO(t), index_col=0) 

Out[3]: 
    Systems 
0  A 
1  B 
2  C 
3  D 
4  E 
+0

謝謝!爲了以防萬一,我最終開始拋棄所有內容,即默認參數。你的答案很有魅力。 –

+0

嗯,哦...所以讀入列似乎已經取代了整個數據幀。我現在只有一列:「系統」。我如何閱讀並保留所有其他欄目。它是'df [Systems] = pd.read_csv ...'? –

+1

您只需要訪問列df [Systems] = pd.read_csv()['Sytems']'或df [Systems] = pd.read_csv(....,squeeze = True)''。 – EdChum

1
  1. 您正在使用很多不必要的默認值(標題,編碼,sep)。

  2. 您應該指數從0,而不是1

df = pd.read_csv('systems_clean.csv', index_col=0)