2015-10-18 46 views
1

我有这个foll。文本文件:获取熊猫数据框中的标题行

line_1 
line_2 
line_3 
Col_A Col_B Col_C 
1.2  33  45 
23  12  55 

这是我如何读它:

df = pandas.read_table(file_name, skiprows=3, sep=' ', skipinitialspace=True) 

有没有什么办法可以访问只是标题行即? 'Col_A Col_B Col_C'作为一个字符串?我不想使用df.columns.values,因为它返回一个数组。我想要保存不同列之间的间距来获取标题行。

+0

您的意思是'df.columns.str.join('')或'''.join(df.columns)'如果你想要一个str – EdChum

回答

1

你可以这样做:

In [6]: 
' '.join(df) 

Out[6]: 
'Col_A Col_B Col_C' 

这工作,因为从DF返回的迭代是其是字符串列,所以你可以只join他们与你分离。

编辑

如果你希望得到您的头球攻门被存储什么,那么你可以做到以下几点:

In [8]: 
df = pd.read_table(io.StringIO(t), skiprows=3, header=None, nrows=1) 
df 

Out[8]: 
         0 
0 Col_A Col_B Col_C 

In [10]: 
df.iloc[0][0] 

Out[10]: 
'Col_A Col_B Col_C' 

所以这并不指定一个分隔符,因此会寻找逗号如果没有,那么整个标题行将被读作一个列值,那么您可以通过索引它来获得行值,如上所示

+0

对不起,我应该更清楚了。我想保留Col_A,Col_B和Col_C之间的空格数量。使用''.join不会保留 – user308827

+0

@ user308827将标题行添加到数据框时,每个颜色中是否保留了sapces?什么是数据框的分隔符?它是否由空格分隔? – pelumi

+0

既然你读了你的csv并指定了分隔符,那么你就失去了原来的空间,你可以用下面的方法做到这一点:'df = pandas.read_table(file_name,skiprows = 3,header = None,nrows = 1)'这个wlll创建一个单行df,只有你的头文件作为数据行,那么你可以只用'df.iloc [0] [0]'将头文件作为字符串获取 – EdChum