重命名未命名的列熊猫数据框
Posted
技术标签:
【中文标题】重命名未命名的列熊猫数据框【英文标题】:Rename unnamed column pandas dataframe 【发布时间】:2014-11-23 18:37:09 【问题描述】:我的 csv 文件没有第一列的列名,我想重命名它。通常,我会使用data.rename(columns='oldname':'newname', inplace=True)
,但 csv 文件中没有名称,只有 ''。
【问题讨论】:
这个 csv 是如何生成的?如果它是从 pandas 导出的,则有时表明第一列是索引。在这种情况下,您可以在阅读时告诉 pandaspd.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')
重命名第一个未命名的列以上是关于重命名未命名的列熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章