Python 之 Pandas 六 合併

2021-08-19 06:01:15 字數 4225 閱讀 6623

**:

import pandas as pd

import numpy as np

# concatenating

df1 = pd.dataframe(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])

df2 = pd.dataframe(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])

df3 = pd.dataframe(np.ones((3, 4)) * 2, columns=['a', 'b', 'c', 'd'])

print(df1)

print(df2)

print(df3)

# 上下合併

res = pd.concat([df1, df2, df3], axis=0, ignore_index=true)

print(res)

執行結果:

a    b    c    d

0 0.0 0.0 0.0 0.0

1 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0

a b c d

0 1.0 1.0 1.0 1.0

1 1.0 1.0 1.0 1.0

2 1.0 1.0 1.0 1.0

a b c d

0 2.0 2.0 2.0 2.0

1 2.0 2.0 2.0 2.0

2 2.0 2.0 2.0 2.0

a b c d

0 0.0 0.0 0.0 0.0

1 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0

3 1.0 1.0 1.0 1.0

4 1.0 1.0 1.0 1.0

5 1.0 1.0 1.0 1.0

6 2.0 2.0 2.0 2.0

7 2.0 2.0 2.0 2.0

8 2.0 2.0 2.0 2.0

**:

# join,['inner','outer]

df1 = pd.dataframe(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])

df2 = pd.dataframe(np.ones((3, 4)) * 1, columns=['b', 'c', 'd', 'e'], index=[2, 3, 4])

print(df1)

print(df2)

# 沒有的用nan填充

res = pd.concat([df1, df2], join='outer')

print(res)

# 沒有的裁減掉

res = pd.concat([df1, df2], join='inner', ignore_index=true)

print(res)

執行結果:

a    b    c    d

1 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0

3 0.0 0.0 0.0 0.0

b c d e

2 1.0 1.0 1.0 1.0

3 1.0 1.0 1.0 1.0

4 1.0 1.0 1.0 1.0

a b c d e

1 0.0 0.0 0.0 0.0 nan

2 0.0 0.0 0.0 0.0 nan

3 0.0 0.0 0.0 0.0 nan

2 nan 1.0 1.0 1.0 1.0

3 nan 1.0 1.0 1.0 1.0

4 nan 1.0 1.0 1.0 1.0

b c d

0 0.0 0.0 0.0

1 0.0 0.0 0.0

2 0.0 0.0 0.0

3 1.0 1.0 1.0

4 1.0 1.0 1.0

5 1.0 1.0 1.0

**:

# join_axes

df1 = pd.dataframe(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])

df2 = pd.dataframe(np.ones((3, 4)) * 1, columns=['b', 'c', 'd', 'e'], index=[2, 3, 4])

print(df1)

print(df2)

# 沒有的用nan填充

res = pd.concat([df1, df2], axis=1)

print(res)

# 只考慮df1的index

res = pd.concat([df1, df2], axis=1, join_axes=[df1.index])

print(res)

執行結果:

a    b    c    d

1 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0

3 0.0 0.0 0.0 0.0

b c d e

2 1.0 1.0 1.0 1.0

3 1.0 1.0 1.0 1.0

4 1.0 1.0 1.0 1.0

a b c d b c d e

1 0.0 0.0 0.0 0.0 nan nan nan nan

2 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0

3 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0

4 nan nan nan nan 1.0 1.0 1.0 1.0

a b c d b c d e

1 0.0 0.0 0.0 0.0 nan nan nan nan

2 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0

3 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0

**:

df1 = pd.dataframe(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])

df2 = pd.dataframe(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])

# df3 = pd.dataframe(np.ones((3, 4)) * 2, columns=['b', 'c', 'd', 'e'],index=[2,3,4])

print(res)

# 一行一行的新增

s1 = pd.series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])

print(res)

執行結果:

a    b    c    d

0 0.0 0.0 0.0 0.0

1 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0

3 1.0 1.0 1.0 1.0

4 1.0 1.0 1.0 1.0

5 1.0 1.0 1.0 1.0

6 1.0 1.0 1.0 1.0

7 1.0 1.0 1.0 1.0

8 1.0 1.0 1.0 1.0

a b c d

0 0.0 0.0 0.0 0.0

1 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0

3 1.0 2.0 3.0 4.0

python之pandas分組統計

pandas分組統計佔比 資料例如 美贊臣標籤 2017 11 15 mob 女性 110548715660 美贊臣標籤 2017 11 15 mob 男性 104342715471 美贊臣標籤 2017 11 15 pc 女性 398273 887 美贊臣標籤 2017 11 15 pc 男性 4...

Python包之Pandas介紹

前言 pandas 是乙個開源的軟體庫。dataframes和series是其兩個主要資料結構,被廣泛用於資料分析。series 是單維索引陣列,而dataframes 是具有列級和行級索引的 資料結構。pandas 是預處理資料集的絕佳工具,可提供高度優化的效能。numpy介紹 下面是詳細介紹 用...

pandas學習之Python基礎

經常使用的幾個小技巧 1 使用pandas必須匯入兩個包 import numpy as np import pandas as pd2 當資料字段超過20個以上,需要使用以下語句來展示全部列 顯示所有列 pd.set option display.max columns none 設定value的...