2016-07-07 71 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)