重命名未命名的列pandas数据帧

use*_*254 23 python csv pandas

我的csv文件没有第一列的列名,我想重命名它.通常,我会这样做data.rename(columns={'oldname':'newname'}, inplace=True),但csv文件中没有名称,只是''.

Kyu*_*Kim 20

加载csv时,请使用"index_col"选项

pd.read_csv('test.csv', index_col=0)
Run Code Online (Sandbox Code Playgroud)

index_col:int或sequence或False,default无用作DataFrame的行标签的列.如果给出序列,则使用MultiIndex.如果在每行末尾有一个带有分隔符的格式错误的文件,您可能会考虑使用index_col = False来强制pandas 使用第一列作为索引(行名称)

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


小智 17

您可以使用查看当前数据框 data.head()

如果返回'Unnamed: 0'列标题,则可以按以下方式重命名:

data.rename( columns={'Unnamed: 0':'new column name'}, inplace=True )
Run Code Online (Sandbox Code Playgroud)

  • 当我打印 DataFrame 时,我的列没有名称,它仅显示列 0,我使用此技术对我没有帮助,您能否建议任何其他方法来替换名称 (5认同)

amb*_*aka 11

该解决方案可以改进为data.rename( columns={0 :'new column name'}, inplace=True )。无需使用'Unnamed: 0',只需使用列号,0在本例中为列号,然后提供'new column name'.

  • 在 Pandas 1.0.3 中,通过带有索引键的字典重命名列似乎不起作用。它仅适用于行。 (2认同)

小智 11

尝试下面的代码,

\n\n

df.columns = [\xe2\x80\x98A\xe2\x80\x99, \xe2\x80\x98B\xe2\x80\x99, \xe2\x80\x98C\xe2\x80\x99, \xe2\x80\x98D\xe2\x80\x99]

\n


小智 7

这应该有效:

data.rename( columns={0 :'Articles'}, inplace=True )
Run Code Online (Sandbox Code Playgroud)


tsv*_*iko 5

第一列/行可能没有名称,因为它是索引而不是列/行。这就是为什么您需要像这样重命名索引:

df.index.name = 'new_name'
Run Code Online (Sandbox Code Playgroud)


Tom*_*ger 1

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

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
Run Code Online (Sandbox Code Playgroud)

  • 以防万一有人需要这个:在 pandas 0.23.4 中,我需要使用 `.rename(columns={'Unnamed: 0': 'id'})` 来重命名第一个未命名列 (3认同)