今天來整理下如何在讀CSV的時候正確處理列名。
csv文件自帶列標題
原始數據是有列標的,用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)
結果都是:
csv文件有列標題,但是想自己換成別的列標題:
2.1 在讀數之後自定義標題:
df_example = pd.read_csv('Pandas_example_read.csv')
df_example.columns = ['A','B','C']
2.2 在讀數的同時自定義標題:
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文件沒有列標題,從第一行就直接開始是數據的錄入了:
原始數據是沒有列標的,用excel打開呈現是這樣的:
df_example_noCols = pd.read_csv('Pandas_example_read_withoutCols.csv', header=None)
這個時候一定要加’header=None’, 這樣讀進來的列名就是系統默認的0,1,2… 序列號:
csv文件沒有列標題,但是自己想加上列標題:
4.1 讀進來數之後加上標題
df_example_noCols = pd.read_csv('Pandas_example_read_withoutCols.csv', header=None)
df_example_noCols.columns = ['A', 'B','C']
4.2 讀數的同時加標題
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’, 用了之後就會導致第一行的數據先被當成了列名,然後又被重命名覆蓋,結果是第一行的數據丟失。