Pandas 資料讀取 DataFrame切片

2021-09-07 14:38:33 字數 1952 閱讀 5883

import numpy as np

dataset_filename = "affinity_dataset.txt"

x = np.loadtxt(dataset_filename)

n_samples, n_features = x.shape

print("this dataset has samples and features".format(n_samples, n_features))

this dataset has 100 samples and 5 features
import pandas as pd

dataset_filename = "affinity_dataset.txt"

xp = pd.read_csv(dataset_filename, delimiter=' ', names=list('abcde'))

print(xp.shape)

(100, 5)
檢測一下輸出,

print(x[:5])

print(xp[:5])

print(type(xp['a'][0]))

[[ 0.  0.  1.  1.  1.]

[ 1. 1. 0. 1. 0.]

[ 1. 0. 1. 1. 0.]

[ 0. 0. 1. 1. 1.]

[ 0. 1. 0. 0. 1.]]

a b c d e

0 0 0 1 1 1

1 1 1 0 1 0

2 1 0 1 1 0

3 0 0 1 1 1

4 0 1 0 0 1

當每列已有column name時,用 df [ 'a' ] 就能選取出一整列資料。如果你知道column names和index,且兩者都很好輸入,可以選擇 .loc,

print(xp.loc[0, 'a'], '\n' ,

xp.loc[0:3, ['a', 'b']], '\n' ,

xp.loc[[1, 5], ['b', 'c']])

0 

a b

0 0 0

1 1 1

2 1 0

3 0 0

b c

1 1 0

5 1 0

如果我們嫌column name太長了,輸入不方便,有或者index是一列時間序列,更不好輸入,那就可以選擇 .iloc了。這邊的 i 我覺得代表index,比較好記點。

print(xp.iloc[1,1],'\n',

xp.iloc[0:3, [0,1]],'\n',

xp.iloc[[0, 3, 5], 0:2] )

1 

a b

0 0 0

1 1 1

2 1 0

a b

0 0 0

3 0 0

5 0 1

.ix 的功能就更強大了,它允許我們混合使用下標和名稱進行選取。 可以說它涵蓋了前面所有的用法。基本上把前面的都換成df.ix 都能成功,但是有一點,就是

df.ix [ [ ..1.. ], [..2..] ],  1框內必須統一,必須同時是下標或者名稱,2框也一樣。 btw, 1框是用來指定row,2框是指定column。

pandas批量讀取csv生成dataframe

此方法用來將資料集合並 import pandas as pd import glob import os pathr r d xx xx 批量檔案所在路徑 file sorted glob.glob os.path.join pathr,csv key lambda name int name 8...

pandas讀取資料

導庫 import pandas as pd fpath d 123.csv 讀取資料 book pd.read csv fpath 檢視全部內容 book idusename course01 張三7512 李四8023 王二8334 張華9045 小明7856 小紅7667 小七90 檢視前5行...

Pandas 資料讀取

1.讀取table 讀取普通分隔資料 read table 可以讀取txt,csv import osos.chdir f 首先設定一下讀取的路徑 data1 pd.read table data1.txt delimiter header 0 print data1 data1 pd.read t...