今天來整理下如何在讀CSV的時(shí)候正確處理列名。
-
csv文件自帶列標(biāo)題
原始數(shù)據(jù)是有列標(biāo)的冲泥,用excel打開是這樣的:
import pandas as pd
df_example = pd.read_csv('Pandas_example_read.csv')
這種方法等同于
df_example = pd.read_csv('Pandas_example_read.csv', header=0)
結(jié)果都是:
- csv文件有列標(biāo)題,但是想自己換成別的列標(biāo)題:
2.1 在讀數(shù)之后自定義標(biāo)題:
df_example = pd.read_csv('Pandas_example_read.csv')
df_example.columns = ['A','B','C']
2.2 在讀數(shù)的同時(shí)自定義標(biāo)題:
df_example = pd.read_csv('Pandas_example_read.csv', names=['A', 'B','C'])
或者
df_example = pd.read_csv('Pandas_example_read.csv', header=0, names=['A', 'B','C'])
2.1和2.2效果都是一樣的,讀取文件,并且改列名:
-
csv文件沒有列標(biāo)題,從第一行就直接開始是數(shù)據(jù)的錄入了:
原始數(shù)據(jù)是沒有列標(biāo)的沮趣,用excel打開呈現(xiàn)是這樣的:
df_example_noCols = pd.read_csv('Pandas_example_read_withoutCols.csv', header=None)
這個(gè)時(shí)候一定要加'header=None', 這樣讀進(jìn)來的列名就是系統(tǒng)默認(rèn)的0屯烦,1,2... 序列號(hào):
- csv文件沒有列標(biāo)題房铭,但是自己想加上列標(biāo)題:
4.1 讀進(jìn)來數(shù)之后加上標(biāo)題
df_example_noCols = pd.read_csv('Pandas_example_read_withoutCols.csv', header=None)
df_example_noCols.columns = ['A', 'B','C']
4.2 讀數(shù)的同時(shí)加標(biāo)題
df_example_noCols = pd.read_csv('Pandas_example_read_withoutCols.csv', names=['A', 'B','C'])
或者
df_example_noCols = pd.read_csv('Pandas_example_read_withoutCols.csv', header=None, names=['A', 'B','C'])
注意:這里不可以用'header=0'驻龟, 用了之后就會(huì)導(dǎo)致第一行的數(shù)據(jù)先被當(dāng)成了列名,然后又被重命名覆蓋缸匪,結(jié)果是第一行的數(shù)據(jù)丟失翁狐。