2014-09-29 120 views
9

我的csv文件没有第一列的列名称,我想重命名它。通常,我会做data.rename(columns={'oldname':'newname'}, inplace=True),但在csv文件中没有名字,只是''。重命名未命名的列大熊猫数据框

+2

这个csv是如何产生的?如果它是从熊猫出口的,那么有时表明第一列是索引。在这种情况下,您可以在pd.read_csv('file.csv',index_col = [0])中读取它时告诉大熊猫' – EdChum 2014-09-29 12:55:44

回答

0

它有一个名字,名字只是''(空字符串)。

In [2]: df = pd.DataFrame({'': [1, 2]}) 

In [3]: df 
Out[3]: 

0 1 
1 2 

In [4]: df.rename(columns={'': 'A'}) 
Out[4]: 
    A 
0 1 
1 2 
+2

错误,它不起作用 – jaycode 2015-08-06 15:48:14

+0

您需要inplace = True直接更改df。 df.rename(columns = {'':'A'},inplace = True) – user2602740 2015-09-03 18:58:10

14

当加载CSV,使用选项“index_col”像

pd.read_csv('test.csv', index_col=0) 

index_col:int或序列或假,默认无柱为 使用数据框的行标签。如果给出序列,则使用MultiIndex 。如果你有在 每一行结束符格式错误的文件,你可能会考虑index_col =假,迫使大熊猫 使用第一列的索引(行名称)

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html

2

您可以查看使用 data.head()

当前的数据帧,如果返回“未命名:0”作为列标题,您可以通过以下方式将其重命名:

data.rename(columns = {'Unnamed:0':'new column name'},inplace = True)