重命名未命名的列熊猫数据框

Posted

技术标签:

【中文标题】重命名未命名的列熊猫数据框【英文标题】:Rename unnamed column pandas dataframe 【发布时间】:2014-11-23 18:37:09 【问题描述】:

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

【问题讨论】:

这个 csv 是如何生成的?如果它是从 pandas 导出的,则有时表明第一列是索引。在这种情况下,您可以在阅读时告诉 pandas pd.read_csv('file.csv', index_col=[0]) 【参考方案1】:

这应该可行:

data.rename( columns=0 :'Articles', inplace=True )

【讨论】:

【参考方案2】:

通常空白列名是根据它们的索引命名的

例如,假设第 4 列未命名。

df.rename('unnamed:3':'new_name',inplace=True)

通常它是这样命名的,因为列的索引从零开始。

【讨论】:

【参考方案3】:

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

df.index.name = 'new_name'

【讨论】:

+1 bc 我搜索了一种方法来做到这一点无济于事 - 当你想要做的只是复制/粘贴到 excel 时真的很方便。来吧python,默认情况下,一切都应该有一个名字!【参考方案4】:

试试下面的代码,

df.columns = [‘A’, ‘B’, ‘C’, ‘D’]

【讨论】:

最好最简单的解决方案!【参考方案5】:

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

【讨论】:

在 Pandas 1.0.3 中,通过带有索引键的字典重命名列似乎不起作用。它只适用于行。 事实上,我认为它只对行有效,因为实际的 DataFrame 索引使用顺序整数作为行名。【参考方案6】:

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

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

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

【讨论】:

当我打印 DataFrame 时,我的列没有名称,它只显示第 0 列,我使用了这种技术,它对我没有帮助,您能否建议任何其他方法来替换名称【参考方案7】:

当你加载 csv 时,使用选项 'index_col' 就像

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

index_col : int 或 sequence 或 False,默认 None 列用作 DataFrame 的行标签。如果给定一个序列,则 MultiIndex 用来。如果您的文件格式不正确,文件末尾带有分隔符 每一行,您可能会考虑 index_col=False 来强制 pandas 使用第一列作为索引(行名)

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

【讨论】:

【参考方案8】:

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

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

【讨论】:

您需要 inplace=True 才能直接更改 df。 df.rename(columns='': 'A', inplace=True) 我尝试使用inplace = True,结果返回空白数据框,不知道是怎么回事,有没有其他解决办法?? 以防有人需要这个:在 pandas 0.23.4 中,我需要使用 .rename(columns='Unnamed: 0': 'id') 重命名第一个未命名的列

以上是关于重命名未命名的列熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

如何使用列表重命名熊猫中的列

按列索引熊猫数据框重命名列

熊猫:重命名多索引df中的列标签

熊猫合并如何避免未命名的列

我应该如何使用熊猫读取没有“未命名”行的 csv 文件? [复制]

重命名多索引数据框熊猫[重复]