Python 仅命名pandas读取的数据集的最后一列。读取\u csv

Python 仅命名pandas读取的数据集的最后一列。读取\u csv,python,database,pandas,Python,Database,Pandas,我正在使用函数pandas.read_csv读取数据集。我只想命名最后一列,我知道我可以将名称作为名称列表传递给所有列,但我只想指定最后一列 编辑:我对最后一列感兴趣,因为它包含样本的分类,就像数据帧的索引列必须由您、文件或自动定义 解决方案 我会这样做: df = pd.read_csv(filename, header=None) cols = [c for c in df.columns] cols[-1] = my_special_name df.columns = cols 您可以使

我正在使用函数
pandas.read_csv
读取数据集。我只想命名最后一列,我知道我可以将
名称
作为名称列表传递给所有列,但我只想指定最后一列


编辑:我对最后一列感兴趣,因为它包含样本的分类

,就像
数据帧的
索引
必须由您、文件或自动定义

解决方案 我会这样做:

df = pd.read_csv(filename, header=None)
cols = [c for c in df.columns]
cols[-1] = my_special_name
df.columns = cols

您可以使用
nrows
参数仅读取一行,以便解析列名:

cols = pd.read_csv(filename, nrows=1).columns.tolist()
现在您可以使用
名称
参数:

df = pd.read_csv(filename, skiprows=1, names=cols[:-1] + ['last_col_new_name'])
测试数据:

col1,col2,col3,col4,colXXX
1,2,3,4,A
11,12,13,14,B
21,22,23,24,B
测试:


您只需要最后一列还是只想命名/重命名最后一列?我只需要命名最后一列,因为它包含分类。您可以在阅读您的CSV文件后进行命名吗?我更喜欢在之前,但也可以在之后。您知道最后一列的名称吗?谢谢。如果可能的话,我正在搜索一个更紧凑的“内置”解决方案(例如使用read_csv的args)。
In [248]: filename
Out[248]: 'd:/temp/.data/aaa.csv'

In [249]: pd.read_csv(filename)
Out[249]:
   col1  col2  col3  col4 colXXX
0     1     2     3     4      A
1    11    12    13    14      B
2    21    22    23    24      B

In [250]: cols = pd.read_csv(filename, nrows=1).columns.tolist()

In [251]: cols
Out[251]: ['col1', 'col2', 'col3', 'col4', 'colXXX']

In [252]: df = pd.read_csv(filename, skiprows=1, names=cols[:-1] + ['last_col_new_name'])

In [253]: df
Out[253]:
   col1  col2  col3  col4 last_col_new_name
0     1     2     3     4                 A
1    11    12    13    14                 B
2    21    22    23    24                 B