数据框没有列名。如何添加标题?

数据挖掘 Python 熊猫
2021-09-30 03:52:30

我正在使用数据集来练习构建决策树分类器。

这是我的代码:

import pandas as pd 
tdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', sep = ',', header=0)
tdf.info()

该列没有名称,我在添加列名时遇到问题,已经尝试过重新索引、pd.melt、重命名等。

我要分配的列名是:

  1. 样品编号:身份证号
  2. 团块厚度:1 - 10
  3. 单元尺寸均匀度:1 - 10
  4. 细胞形状均匀度:1 - 10
  5. 边际附着力:1 - 10
  6. 单上皮细胞大小:1 - 10
  7. 裸核:1 - 10
  8. 温和的染色质:1 - 10
  9. 正常核仁:1 - 10
  10. 有丝分裂:1 - 10
  11. 等级:(2为良性,4为恶性)

谢谢,

3个回答

对于任何数据框,例如 df ,您可以通过将列表中的列名传递给 df.columns 方法来添加/修改列名:例如,如果您希望列名是 'A'、'B'、'C ', 'D'], 使用这个

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

在您的代码中,您可以删除header=0吗?这基本上告诉 pandas 将第一行作为列标题。一旦你删除它,使用上面的来分配列名

df = pd.read_csv("Price Data.csv", names=['Date', 'Price'])

使用该names字段向您的 pandas 数据框添加标头。

我尝试了上面的代码,但您缺少第一行数据。

1.原创

tdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', sep = ',', header=0)
tdf.shape

(698, 11)

2.和前面的问题一样,去掉header=0

tdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', sep = ',')
tdf.shape

(698, 11)

3. 新答案,在读取 csv 时添加列名,确实得到所有行

 tdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', sep = ',', names=['Sample code number: id number','Clump Thickness: 1 - 10','Uniformity of Cell Size: 1 - 10','Uniformity of Cell Shape: 1 - 10','Marginal Adhesion: 1 - 10','Single Epithelial Cell Size: 1 - 10','Bare Nuclei: 1 - 10','Bland Chromatin: 1 - 10','Normal Nucleoli: 1 - 10','Mitoses: 1 - 10','Class: (2 for benign, 4 for malignant)'])  
    tdf.shape

( 699 , 11)

您可以在读取 csv 文件时指定列的名称

import pandas as pd 
tdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', sep = ',', names=['Sample code number: id number','Clump Thickness: 1 - 10','Uniformity of Cell Size: 1 - 10','Uniformity of Cell Shape: 1 - 10','Marginal Adhesion: 1 - 10','Single Epithelial Cell Size: 1 - 10','Bare Nuclei: 1 - 10','Bland Chromatin: 1 - 10','Normal Nucleoli: 1 - 10','Mitoses: 1 - 10','Class: (2 for benign, 4 for malignant)'])

您可以使用检查数据框

tdf.head()

你得到

在此处输入图像描述

您可以在https://gist.github.com/e94b31914dbaebda7d11f6bfe0cfbdec上查看代码