對於一個沒有字段名標題的數據,如data.csv
1.獲取數據內容。pandas.read_csv(“data.csv”)默認情況下,會把數據內容的第一行默認為字段名標題。
import pandas as pd
# 讀取數據
df = pd.read_csv("../data/data.csv")
print(df)
為了解決這個問題,我們添加“header=None”,告訴函數,我們讀取的原始文件數據沒有列索引。因此,read_csv為自動加上列索引。
import pandas as pd
# 讀取數據
df = pd.read_csv("../data/data.csv", header=None)
print(df)
2.局部獲取。有時候我們需要取某些列數據,如下(X,y):
- pd.read_csv()函數有"header=None"參數:
import pandas as pd
# 讀取數據
df = pd.read_csv("../data/data.csv", header=None)
# 注意有"header=None", df.ix[:,0:4]就是左閉右閉的區間
X= df.ix[:,0:4]
y = df.ix[:,5]
print(X)
print(y)
- pd.read_csv()函數沒有"header=None"參數:
import pandas as pd
# 讀取數據
df = pd.read_csv("../data/data.csv")
# 注意沒有"header=None", df.ix[:,0:4]就是左閉右開的區間
X= df.ix[:,0:4] # 實際上X應該是df.ix[:,0:5]
y = df.ix[:,5]
print(X)
print(y)
在第二種情況中,帶上names屬性還是df.ix[:,0:4]就是左閉右開的區間。
# 設置表頭
names = ["US0","US1","US2","US3","US4","Class"]
# 讀入數據 (沒有屬性行:header=None)
df = pd.read_csv("../data/data.csv", names=names)
# 注意沒有"header=None", df.ix[:,0:4]就是左閉右開的區間
X= df.ix[:,0:4] # 實際上X應該是df.ix[:,0:5]
y = df.ix[:,5]
print(df)
print(X)
print(y)
總結:pd.read_csv()函數,有"header=None", df.ix[:,0:4]就是左閉右閉的區間;沒有"header=None", df.ix[:,0:4]就是左閉右開的區間。