pandas資料載入與合併

2021-08-01 11:51:22 字數 2999 閱讀 8304

《python for data analysis》

read_csv

從檔案、url、檔案型物件中載入帶分隔符的資料。預設分隔符為逗號

read_table

從檔案、url、檔案型物件中載入帶分隔符的資料。預設分隔符為製表符(「\t」)

pd.read_csv('ex1.csv')等價於pd.read_table('ex1.csv', sep=',')

to_csv

將資料寫到乙個以逗號分隔的檔案中

pandas.merge

根據乙個或多個鍵將不同dataframe中的行連線起來。

in [15]: df1 = dataframe()

in [16]: df2 = dataframe()

in [17]: pd.merge(df1, df2, on='key', how = 'left')

out[17]:

data1 key data2

00 b 1.0

10 b 3.0

21 b 1.0

31 b 3.042

a0.052

a2.0

63 c nan74

a0.084

a2.0

95 b 1.0

105 b 3.0

警告:在進行列-列連線時,dataframe物件中的索引會被丟棄。(可以將有意義的索引放到列中。)

pandas.concat

可以沿著一條軸將多個物件堆疊到一起。軸向連線

np.concatenate:

in [19]: arr = np.arange(12).reshape((3,4))

in [20]: arr

out[20]:

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

in [21]: np.concatenate([arr,arr], axis=1)

out[21]:

array([[ 0, 1, 2, 3, 0, 1, 2, 3],

[ 4, 5, 6, 7, 4, 5, 6, 7],

[ 8, 9, 10, 11, 8, 9, 10, 11]])

pandas.concat

in [25]: a1 = dataframe(arr)

in [26]: a1

out[26]:

0123001

2314

5672

891011

in [27]: pd.concat([a1,a1], axis=1)

out[27]:

0123012

3001

2301

2314

5674

5672

89101189

1011

in [29]: pd.concat([a1,a1], axis=1, ignore_index=true)

out[29]:

0123456

7001

2301

2314

5674

5672

89101189

1011

axis=1是列,每列是乙個向量,沿行傳播

combine_first

用引數物件中的資料為呼叫者物件的缺失資料「打補丁」,並且會進行資料對齊。

in [33]: a = series([np.nan, 2.5, np.nan, 3.5, 4.5, np.nan], index=['f','e','d','c','b','

...: a'])

in [34]: b = series(np.arange(len(a),dtype=np.float64), index=['f','e','d','c','b','a'])

in [35]: a

out[35]:

f nan

e 2.5

d nan

c 3.5

b 4.5

a nan

dtype: float64

in [36]: b

out[36]:

f 0.0

e 1.0

d 2.0

c 3.0

b 4.0

a 5.0

dtype: float64

in [37]: b[:-2]

out[37]:

f 0.0

e 1.0

d 2.0

c 3.0

dtype: float64

in [39]: a[2:]

out[39]:

d nan

c 3.5

b 4.5

a nan

dtype: float64

in [40]: b[:-2].combine_first(a[2:])

out[40]:

a nan

b 4.5

c 3.0

d 2.0

e 1.0

f 0.0

dtype: float64

pandas資料合併

pandas 提供了三種主要方法可以對資料進行合併 pandas.merge 方法 資料庫風格的合併 例如,通過merge 方法將兩個dataframe合併 on name 的意思是將name列當作鍵 預設情況下,merge做的是內連線 inner 即鍵的交集。其他方式還有左連線 left 右連線 ...

pandas的資料載入

pandas檔案的讀寫操作 read csv sep引數,取決文字檔案分隔符 資料庫操作 sqlite 最簡單的資料庫 以檔案的形式來儲存資料庫 結構化的資料都可以使用csv來使用 使用csv來讀取table檔案 pd.read csv table sep t header none names l...

pandas合併資料merge

snailtyan 本文主要是關於pandas的一些基本用法。usr bin env python coding utf 8 import pandas as pd import numpy as np test 1 定義資料 left pd.dataframe right pd.dataframe...