Hướng dẫn python join documentation - tài liệu tham gia python

Pandas cung cấp các cơ sở khác nhau để dễ dàng kết hợp với chuỗi hoặc DataFrame với các loại logic đã đặt khác nhau cho các chỉ mục và chức năng đại số quan hệ trong trường hợp hoạt động loại tham gia / hợp nhất.

Show

Ngoài ra, Pandas cũng cung cấp các tiện ích để so sánh hai loạt hoặc DataFrame và tóm tắt sự khác biệt của chúng.

Các đối tượng kết hợp#

Hàm

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
8 (trong không gian tên chính của gấu trúc) thực hiện tất cả các hoạt động nặng thực hiện các hoạt động nối dọc theo một trục trong khi thực hiện logic đặt tùy chọn (liên kết hoặc giao lộ) của các chỉ mục (nếu có) trên các trục khác. Lưu ý rằng tôi nói rằng nếu có bất kỳ người nào vì chỉ có một trục nối duy nhất có thể cho chuỗi.

Trước khi lặn vào tất cả các chi tiết của

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
9 và những gì nó có thể làm, đây là một ví dụ đơn giản:

In [1]: df1 = pd.DataFrame(
   ...:     {
   ...:         "A": ["A0", "A1", "A2", "A3"],
   ...:         "B": ["B0", "B1", "B2", "B3"],
   ...:         "C": ["C0", "C1", "C2", "C3"],
   ...:         "D": ["D0", "D1", "D2", "D3"],
   ...:     },
   ...:     index=[0, 1, 2, 3],
   ...: )
   ...: 

In [2]: df2 = pd.DataFrame(
   ...:     {
   ...:         "A": ["A4", "A5", "A6", "A7"],
   ...:         "B": ["B4", "B5", "B6", "B7"],
   ...:         "C": ["C4", "C5", "C6", "C7"],
   ...:         "D": ["D4", "D5", "D6", "D7"],
   ...:     },
   ...:     index=[4, 5, 6, 7],
   ...: )
   ...: 

In [3]: df3 = pd.DataFrame(
   ...:     {
   ...:         "A": ["A8", "A9", "A10", "A11"],
   ...:         "B": ["B8", "B9", "B10", "B11"],
   ...:         "C": ["C8", "C9", "C10", "C11"],
   ...:         "D": ["D8", "D9", "D10", "D11"],
   ...:     },
   ...:     index=[8, 9, 10, 11],
   ...: )
   ...: 

In [4]: frames = [df1, df2, df3]

In [5]: result = pd.concat(frames)

Hướng dẫn python join documentation - tài liệu tham gia python

Giống như chức năng anh chị em của nó trên ndarrays,

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
0,
In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
1 lấy một danh sách hoặc chỉ định các đối tượng được gõ đồng nhất và kết hợp chúng với một số xử lý cấu hình của những gì cần làm với các trục khác khác:

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    2: Một chuỗi hoặc ánh xạ các đối tượng Data hoặc DataFrame. Nếu một dict được thông qua, các khóa được sắp xếp sẽ được sử dụng làm đối số
    In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    3, trừ khi nó được thông qua, trong trường hợp đó, các giá trị sẽ được chọn (xem bên dưới). Bất kỳ đối tượng nào sẽ được thả một cách âm thầm trừ khi tất cả chúng không có gì trong trường hợp đó sẽ được nâng lên.

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    4: {0, 1, Mạnh}, mặc định 0. Trục để nối.

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    5: {‘bên trong,‘ bên ngoài}, mặc định ‘bên ngoài. Cách xử lý các chỉ mục trên trục khác (ES). Bên ngoài cho công đoàn và bên trong cho giao lộ.

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    6: Boolean, mặc định sai. Nếu đúng, không sử dụng các giá trị chỉ mục trên trục nối. Trục kết quả sẽ được dán nhãn 0,, N - 1. Điều này rất hữu ích nếu bạn đang ghép các đối tượng trong đó trục nối không có thông tin lập chỉ mục có ý nghĩa. Lưu ý các giá trị chỉ mục trên các trục khác vẫn được tôn trọng trong tham gia.

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    3: Trình tự, mặc định không có. Xây dựng chỉ số phân cấp bằng cách sử dụng các phím được truyền làm mức ngoài cùng. Nếu nhiều cấp độ trôi qua, nên chứa bộ dữ liệu.

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    8: Danh sách các chuỗi, mặc định không có. Các mức cụ thể (giá trị duy nhất) để sử dụng để xây dựng đa dạng. Nếu không, chúng sẽ được suy ra từ các chìa khóa.

  • In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
    Out[12]: 
        A   B   C   D    B    D    F
    0  A0  B0  C0  D0  NaN  NaN  NaN
    1  A1  B1  C1  D1  NaN  NaN  NaN
    2  A2  B2  C2  D2   B2   D2   F2
    3  A3  B3  C3  D3   B3   D3   F3
    
    9: Danh sách, mặc định không có. Tên cho các cấp độ trong chỉ số phân cấp kết quả.

  • In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
    
    0: Boolean, mặc định sai. Kiểm tra xem trục được nối mới có chứa các bản sao hay không. Điều này có thể rất tốn kém so với cách ghép dữ liệu thực tế.

  • In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
    
    1: Boolean, mặc định đúng. Nếu sai, không sao chép dữ liệu một cách không cần thiết.

Không có một chút bối cảnh, nhiều trong số những lập luận này không có ý nghĩa gì. Hãy để xem lại ví dụ trên. Giả sử chúng tôi muốn liên kết các khóa cụ thể với từng phần của khung dữ liệu băm nhỏ. Chúng ta có thể làm điều này bằng cách sử dụng đối số

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
3:

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])

Hướng dẫn python join documentation - tài liệu tham gia python

Như bạn có thể thấy (nếu bạn đã đọc phần còn lại của tài liệu), chỉ số kết quả của đối tượng có chỉ số phân cấp. Điều này có nghĩa là bây giờ chúng ta có thể chọn từng đoạn bằng khóa:hierarchical index. This means that we can now select out each chunk by key:

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7

Nó không phải là một sự kéo dài để xem làm thế nào điều này có thể rất hữu ích. Thêm chi tiết về chức năng này dưới đây.

Ghi chú

Điều đáng chú ý là

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
8 (và do đó
In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
4) tạo ra một bản sao đầy đủ của dữ liệu và việc tiếp tục sử dụng lại chức năng này có thể tạo ra một hiệu suất đáng kể. Nếu bạn cần sử dụng thao tác qua một số bộ dữ liệu, hãy sử dụng danh sách hiểu.

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)

Ghi chú

Điều đáng chú ý là

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
8 (và do đó
In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
4) tạo ra một bản sao đầy đủ của dữ liệu và việc tiếp tục sử dụng lại chức năng này có thể tạo ra một hiệu suất đáng kể. Nếu bạn cần sử dụng thao tác qua một số bộ dữ liệu, hãy sử dụng danh sách hiểu.

Khi kết hợp các khung dữ liệu với các trục được đặt tên, gấu trúc sẽ cố gắng bảo tồn các tên chỉ mục/cột này bất cứ khi nào có thể. Trong trường hợp tất cả các đầu vào chia sẻ một tên chung, tên này sẽ được gán cho kết quả. Khi các tên đầu vào không đồng ý, kết quả sẽ không được đặt tên. Điều tương tự cũng đúng với In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False) 5, nhưng logic được áp dụng riêng biệt trên cơ sở theo cấp độ.

Đặt logic trên các trục khác#

  • Khi dán nhiều khung dữ liệu, bạn có thể lựa chọn cách xử lý các trục khác (trừ cái được nối). Điều này có thể được thực hiện theo hai cách sau:

  • Lấy sự kết hợp của tất cả,

    In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
    
    6. Đây là tùy chọn mặc định vì nó dẫn đến mất thông tin bằng không.

Lấy giao lộ,

In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
7.

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)

Hướng dẫn python join documentation - tài liệu tham gia python

Dưới đây là một ví dụ về từng phương pháp này. Đầu tiên, hành vi

In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
6 mặc định:

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")

Hướng dẫn python join documentation - tài liệu tham gia python

Đây là điều tương tự với

In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
7:

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)

Cuối cùng, giả sử chúng tôi chỉ muốn sử dụng lại chỉ mục chính xác từ DataFrame gốc:

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3

Hướng dẫn python join documentation - tài liệu tham gia python

Tương tự, chúng ta có thể lập chỉ mục trước khi kết hợp:

Bỏ qua các chỉ mục trên trục nối#

In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)

Hướng dẫn python join documentation - tài liệu tham gia python

Kết hợp với các ndims hỗn hợp#

Bạn có thể kết hợp một hỗn hợp các đối tượng

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 và
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00.
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 sẽ được chuyển đổi thành
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 với tên cột là tên của
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
0

Hướng dẫn python join documentation - tài liệu tham gia python

Ghi chú

Vì chúng tôi đã kết hợp một

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 đến
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00, chúng tôi có thể đã đạt được kết quả tương tự với
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
09. Để kết hợp một số lượng đối tượng gấu trúc tùy ý (
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 hoặc
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02), sử dụng
In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
9.

Nếu không tên

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 được thông qua, chúng sẽ được đánh số liên tiếp.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
1

Hướng dẫn python join documentation - tài liệu tham gia python

Vượt qua

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
14 sẽ bỏ tất cả các tài liệu tham khảo tên.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
2

Hướng dẫn python join documentation - tài liệu tham gia python

Thêm kết nối với các phím nhóm#

Việc sử dụng khá phổ biến của đối số

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
3 là ghi đè tên cột khi tạo
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 mới dựa trên
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 hiện có. Lưu ý cách hành vi mặc định bao gồm để cho kết quả
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 kế thừa tên cha mẹ ____102, khi chúng tồn tại.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
3

Thông qua đối số

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
3, chúng ta có thể ghi đè các tên cột hiện có.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
4

Hãy cùng xem xét một biến thể của ví dụ đầu tiên được trình bày:

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
5

Hướng dẫn python join documentation - tài liệu tham gia python

Bạn cũng có thể chuyển một dict cho

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
9 trong trường hợp đó, các khóa Dict sẽ được sử dụng cho đối số
In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
3 (trừ khi các khóa khác được chỉ định):

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
6

Hướng dẫn python join documentation - tài liệu tham gia python

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
7

Hướng dẫn python join documentation - tài liệu tham gia python

Multiindex được tạo ra có các mức được xây dựng từ các khóa được thông qua và chỉ số của các mảnh

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00:

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
8

Nếu bạn muốn chỉ định các cấp độ khác (đôi khi sẽ là trường hợp), bạn có thể làm như vậy bằng cách sử dụng đối số

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
8:

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
9

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
0

Điều này khá bí truyền, nhưng thực sự cần thiết để thực hiện những thứ như Groupby trong đó thứ tự của một biến phân loại là có ý nghĩa.

Nối các hàng vào DataFrame#

Nếu bạn có một chuỗi mà bạn muốn nối như một hàng duy nhất vào

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00, bạn có thể chuyển đổi hàng thành
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 và sử dụng
In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
9

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
1

Hướng dẫn python join documentation - tài liệu tham gia python

Bạn nên sử dụng

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
6 với phương pháp này để hướng dẫn DataFrame loại bỏ chỉ mục của nó. Nếu bạn muốn bảo tồn chỉ mục, bạn nên xây dựng một bản dữ liệu được chỉ định một cách thích hợp và nối hoặc nối các đối tượng đó.

DataFrame kiểu cơ sở dữ liệu hoặc chuỗi được đặt tên tham gia/hợp nhất#

Pandas có các hoạt động tham gia trong bộ nhớ đầy đủ tính năng, hiệu suất cao rất giống với cơ sở dữ liệu quan hệ như SQL. Các phương pháp này thực hiện tốt hơn đáng kể (trong một số trường hợp tốt hơn một thứ tự lớn hơn) so với các triển khai nguồn mở khác (như

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
29 trong R). Lý do cho điều này là thiết kế thuật toán cẩn thận và bố cục nội bộ của dữ liệu trong
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00.high performance in-memory join operations idiomatically very similar to relational databases like SQL. These methods perform significantly better (in some cases well over an order of magnitude better) than other open source implementations (like
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
29 in R). The reason for this is careful algorithmic design and the internal layout of the data in
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00.

Xem sách dạy nấu ăn cho một số chiến lược nâng cao.cookbook for some advanced strategies.

Người dùng quen thuộc với SQL nhưng mới với gấu trúc có thể quan tâm đến việc so sánh với SQL.comparison with SQL.

Pandas cung cấp một chức năng duy nhất,

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
31, là điểm nhập cho tất cả các hoạt động tham gia cơ sở dữ liệu tiêu chuẩn giữa
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 hoặc được đặt tên là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 đối tượng:

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
2

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    34: Đối tượng DataFrame hoặc được đặt tên là đối tượng.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    35: Một đối tượng DataFrame hoặc được đặt tên khác.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    36: Tên cấp độ hoặc chỉ mục để tham gia. Phải được tìm thấy trong cả đối tượng DataFrame và/hoặc Series bên trái. Nếu không được thông qua và
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    37 và
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    38 là
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    39, giao điểm của các cột trong các khung dữ liệu và/hoặc chuỗi sẽ được suy ra là các phím tham gia.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    40: Cột hoặc cấp chỉ mục từ DataFrame hoặc Sê -ri bên trái để sử dụng làm khóa. Có thể là tên cột, tên cấp chỉ mục hoặc mảng có độ dài bằng độ dài của DataFrame hoặc Sê -ri.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    41: Cột hoặc cấp chỉ mục từ DataFrame hoặc Sê -ri bên phải để sử dụng làm khóa. Có thể là tên cột, tên cấp chỉ mục hoặc mảng có độ dài bằng độ dài của DataFrame hoặc Sê -ri.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    37: Nếu
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    43, hãy sử dụng chỉ mục (nhãn hàng) từ DataFrame bên trái hoặc chuỗi làm khóa nối của nó. Trong trường hợp của DataFrame hoặc Sê -ri có đa dạng (phân cấp), số lượng cấp độ phải khớp với số khóa tham gia từ DataFrame hoặc Sê -ri bên phải.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    38: sử dụng tương tự như
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    37 cho đúng DataFrame hoặc Sê -ri

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    46: một trong số
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    47,
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    48,
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    49,
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    50,
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    51. Mặc định là
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    52. Xem bên dưới để biết mô tả chi tiết hơn về từng phương pháp.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    53: Sắp xếp kết quả DataFrame theo các khóa tham gia theo thứ tự từ vựng. Mặc định là
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    43, cài đặt thành
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    39 sẽ cải thiện hiệu suất đáng kể trong nhiều trường hợp.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    56: Một bộ hậu tố chuỗi để áp dụng cho các cột chồng chéo. Mặc định là
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    57.

  • In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
    
    1: Luôn sao chép dữ liệu (mặc định
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    43) từ các đối tượng DataFrame được truyền hoặc các đối tượng được đặt tên, ngay cả khi không cần thiết phải tái lập. Không thể tránh được trong nhiều trường hợp nhưng có thể cải thiện việc sử dụng hiệu suất / bộ nhớ. Các trường hợp sao chép có thể tránh được có phần bệnh lý nhưng tùy chọn này dù sao cũng được cung cấp.

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    60: Thêm một cột vào DataFrame đầu ra được gọi là
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    61 với thông tin về nguồn của mỗi hàng.
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    61 là loại phân loại và nhận được giá trị
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    63 cho các quan sát có khóa hợp nhất chỉ xuất hiện trong
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    47 DataFrame hoặc Sê-ri,
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    65 cho các quan sát có khóa hợp nhất chỉ xuất hiện trong
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    48 .

  • pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    68: Chuỗi, mặc định Không có. Nếu được chỉ định, kiểm tra nếu Merge thuộc loại được chỉ định.

    • Một lần nữa, một trong hai bộ dữ liệu bên trái và bên phải.

    • Một lần nữa, One One_To_Many, hoặc 1: M ': Kiểm tra xem các phím hợp nhất có phải là duy nhất trong bộ dữ liệu bên trái không.

    • Càng nhiều_to_one, hoặc M M: 1: Kiểm tra xem các phím hợp nhất có phải là duy nhất trong bộ dữ liệu bên phải không.

    • Càng nhiều_to_many, hoặc M M: Mùi: được phép, nhưng không dẫn đến séc.

Ghi chú

Hỗ trợ chỉ định các mức chỉ mục là các tham số

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
36,
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
40 và
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
41 đã được thêm vào phiên bản 0.23.0. Hỗ trợ hợp nhất các đối tượng
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 đã được thêm vào phiên bản 0.24.0.

Loại trả lại sẽ giống như

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34. Nếu
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34 là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 hoặc được đặt tên
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 và
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
35 là một lớp con của
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00, loại trả lại vẫn sẽ là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
80 là một chức năng trong không gian tên Pandas và nó cũng có sẵn dưới dạng phương thức phiên bản
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
31, với cuộc gọi
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 được coi là đối tượng bên trái trong tham gia.

Phương thức

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
84 liên quan, sử dụng nội bộ cho chỉ số chỉ mục (theo mặc định) và (s) -on-on-chỉ số tham gia. Nếu bạn chỉ tham gia vào chỉ mục, bạn có thể muốn sử dụng
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
86 để tiết kiệm cho mình một số gõ.

Sao mồi ngắn gọn về phương pháp hợp nhất (đại số quan hệ)#

Người dùng có kinh nghiệm của các cơ sở dữ liệu quan hệ như SQL sẽ quen thuộc với thuật ngữ được sử dụng để mô tả các hoạt động tham gia giữa hai cấu trúc SQL Table như các cấu trúc (

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 đối tượng). Có một số trường hợp cần xem xét rất quan trọng để hiểu:

  • Tham gia một-một: Ví dụ: khi tham gia hai đối tượng

    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    00 trên các chỉ mục của chúng (phải chứa các giá trị duy nhất). joins: for example when joining two
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    00 objects on their indexes (which must contain unique values).

  • Tham gia nhiều-một: Ví dụ: khi tham gia một chỉ mục (duy nhất) với một hoặc nhiều cột trong một

    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    00 khác. joins: for example when joining an index (unique) to one or more columns in a different
    pd.concat(
        objs,
        axis=0,
        join="outer",
        ignore_index=False,
        keys=None,
        levels=None,
        names=None,
        verify_integrity=False,
        copy=True,
    )
    
    00.

  • Nhiều người tham gia: tham gia các cột trên các cột. joins: joining columns on columns.

Ghi chú

Hỗ trợ chỉ định các mức chỉ mục là các tham số

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
36,
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
40 và
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
41 đã được thêm vào phiên bản 0.23.0. Hỗ trợ hợp nhất các đối tượng
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 đã được thêm vào phiên bản 0.24.0.will be discarded.

Loại trả lại sẽ giống như

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34. Nếu
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34 là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 hoặc được đặt tên
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 và
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
35 là một lớp con của
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00, loại trả lại vẫn sẽ là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00.many-to-many join case. In SQL / standard relational algebra, if a key combination appears more than once in both tables, the resulting table will have the Cartesian product of the associated data. Here is a very basic example with one unique key combination:

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
3

Hướng dẫn python join documentation - tài liệu tham gia python

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
80 là một chức năng trong không gian tên Pandas và nó cũng có sẵn dưới dạng phương thức phiên bản
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
31, với cuộc gọi
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 được coi là đối tượng bên trái trong tham gia.

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
4

Hướng dẫn python join documentation - tài liệu tham gia python

Phương thức

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
84 liên quan, sử dụng nội bộ cho chỉ số chỉ mục (theo mặc định) và (s) -on-on-chỉ số tham gia. Nếu bạn chỉ tham gia vào chỉ mục, bạn có thể muốn sử dụng
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
86 để tiết kiệm cho mình một số gõ.does not appear in either the left or right tables, the values in the joined table will be
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
96. Here is a summary of the
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
46 options and their SQL equivalent names:

Sao mồi ngắn gọn về phương pháp hợp nhất (đại số quan hệ)#

Người dùng có kinh nghiệm của các cơ sở dữ liệu quan hệ như SQL sẽ quen thuộc với thuật ngữ được sử dụng để mô tả các hoạt động tham gia giữa hai cấu trúc SQL Table như các cấu trúc (

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 đối tượng). Có một số trường hợp cần xem xét rất quan trọng để hiểu:

Tham gia một-một: Ví dụ: khi tham gia hai đối tượng

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 trên các chỉ mục của chúng (phải chứa các giá trị duy nhất).

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
99

Tham gia nhiều-một: Ví dụ: khi tham gia một chỉ mục (duy nhất) với một hoặc nhiều cột trong một

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 khác.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
35

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
01

Nhiều người tham gia: tham gia các cột trên các cột.

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
02

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
03

Khi tham gia các cột trên các cột (có khả năng tham gia nhiều-nhiều), bất kỳ chỉ mục nào trên các đối tượng

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 đã được loại bỏ sẽ bị loại bỏ.

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
52

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
05

Điều đáng để dành một chút thời gian để hiểu kết quả của vụ án tham gia nhiều-nhiều. Trong đại số quan hệ SQL / tiêu chuẩn, nếu một sự kết hợp chính xuất hiện nhiều lần trong cả hai bảng, bảng kết quả sẽ có sản phẩm Cartesian của dữ liệu liên quan. Dưới đây là một ví dụ rất cơ bản với một kết hợp khóa duy nhất:

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
06

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
07

Dưới đây là một ví dụ phức tạp hơn với nhiều khóa tham gia. Chỉ có các khóa xuất hiện trong

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34 và
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
35 mới có mặt (giao điểm), vì
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
93 theo mặc định.

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
5

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
6

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
7

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
8

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
9

Hướng dẫn python join documentation - tài liệu tham gia python

Đối số

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
46 cho
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
80 Chỉ định cách xác định các khóa nào sẽ được đưa vào bảng kết quả. Nếu một kết hợp khóa không xuất hiện trong các bảng bên trái hoặc bên phải, các giá trị trong bảng được nối sẽ là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
96. Dưới đây là bản tóm tắt các tùy chọn
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
46 và tên tương đương SQL của chúng:

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
0

Phương pháp hợp nhất

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
1

Hướng dẫn python join documentation - tài liệu tham gia python

Tên tham gia SQL

Sự mô tả

Chỉ sử dụng các phím từ khung bên trái

Chỉ sử dụng các phím từ khung bên phải

Sử dụng liên minh các phím từ cả hai khung

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
2

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
3

Nếu người dùng nhận thức được các bản sao ở bên phải

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 nhưng muốn đảm bảo không có bản sao trong DataFrame bên trái, người ta có thể sử dụng đối số
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
14 thay thế, sẽ không nêu ra ngoại lệ.

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
4

Chỉ báo hợp nhất#

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
31 chấp nhận đối số
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
60. Nếu
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
43, một cột loại phân loại được gọi là
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
61 sẽ được thêm vào đối tượng đầu ra có giá trị:

Nguồn gốc quan sát

Giá trị

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
61

Chỉ hợp nhất khóa trong khung

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
47

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
63

Chỉ hợp nhất khóa trong khung

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
48

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
65

Hợp nhất khóa trong cả hai khung

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
67

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
5

Đối số

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
60 cũng sẽ chấp nhận các đối số chuỗi, trong trường hợp đó hàm chỉ báo sẽ sử dụng giá trị của chuỗi được truyền làm tên cho cột chỉ báo.

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
6

Hợp nhất dtypes#

Hợp nhất sẽ bảo tồn DTYPE của các phím tham gia.

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
7

Chúng tôi có thể bảo tồn các phím tham gia:

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
8

Tất nhiên nếu bạn có các giá trị bị thiếu được giới thiệu, thì DTYPE kết quả sẽ được Upcast.

In [7]: result.loc["y"]
Out[7]: 
    A   B   C   D
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7
9

Hợp nhất sẽ bảo tồn

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
26 DTYPE của các vụ sáp nhập. Xem thêm phần về phân loại.categoricals.

Khung bên trái.

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
0

Khung phù hợp.

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
1

Kết quả được hợp nhất:

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
2

Ghi chú

Các DTYPE danh mục phải hoàn toàn giống nhau, có nghĩa là cùng một loại và thuộc tính được đặt hàng. Nếu không, kết quả sẽ ép buộc các danh mục DTYPE.

Ghi chú

Các DTYPE danh mục phải hoàn toàn giống nhau, có nghĩa là cùng một loại và thuộc tính được đặt hàng. Nếu không, kết quả sẽ ép buộc các danh mục DTYPE.

Hợp nhất trên In [6]: result = pd.concat(frames, keys=["x", "y", "z"]) 26 DTYPE giống nhau có thể khá hiệu quả so với việc hợp nhất In [6]: result = pd.concat(frames, keys=["x", "y", "z"]) 28 DTYPE.

Tham gia trên Index#

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
3

Hướng dẫn python join documentation - tài liệu tham gia python

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
4

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
29 là một phương pháp thuận tiện để kết hợp các cột của hai chỉ số có khả năng khác nhau
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
30 thành một kết quả duy nhất
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00. Đây là một ví dụ rất cơ bản:

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
5

Hướng dẫn python join documentation - tài liệu tham gia python

Giống như trên, nhưng với

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
93.

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
6

Hướng dẫn python join documentation - tài liệu tham gia python

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
7

Hướng dẫn python join documentation - tài liệu tham gia python

Sự liên kết dữ liệu ở đây là trên các chỉ mục (nhãn hàng). Hành vi tương tự này có thể đạt được bằng cách sử dụng pd.concat( objs, axis=0, join="outer", ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True, ) 80 cộng với các đối số bổ sung hướng dẫn nó sử dụng các chỉ mục:

Tham gia các cột khóa trên một chỉ mục#

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
8

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
84 có một đối số
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
36 tùy chọn có thể là một cột hoặc nhiều tên cột, trong đó chỉ định rằng
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 đã vượt qua sẽ được căn chỉnh trên cột đó trong
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00. Hai cuộc gọi chức năng này hoàn toàn tương đương:

frames = [ process_your_file(f) for f in files ]
result = pd.concat(frames)
9

Hướng dẫn python join documentation - tài liệu tham gia python

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
0

Hướng dẫn python join documentation - tài liệu tham gia python

Rõ ràng bạn có thể chọn bất kỳ hình thức nào bạn thấy thuận tiện hơn. Đối với các lần tham gia nhiều-một (trong đó một trong số ____ 100 đã được lập chỉ mục bởi khóa tham gia), sử dụng

In [12]: pd.concat([df1, df4.reindex(df1.index)], axis=1)
Out[12]: 
    A   B   C   D    B    D    F
0  A0  B0  C0  D0  NaN  NaN  NaN
1  A1  B1  C1  D1  NaN  NaN  NaN
2  A2  B2  C2  D2   B2   D2   F2
3  A3  B3  C3  D3   B3   D3   F3
5 có thể thuận tiện hơn. Đây là một ví dụ đơn giản:

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
1

Để tham gia vào nhiều khóa, DataFrame được truyền phải có

In [13]: result = pd.concat([df1, df4], ignore_index=True, sort=False)
5:

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
2

Hướng dẫn python join documentation - tài liệu tham gia python

Bây giờ điều này có thể được nối bằng cách truyền hai tên cột chính:

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
3

Hướng dẫn python join documentation - tài liệu tham gia python

Mặc định cho

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
86 là thực hiện tham gia bên trái (về cơ bản là hoạt động của VLookup, cho người dùng Excel), chỉ sử dụng các khóa được tìm thấy trong DataFrame gọi. Ví dụ, các loại tham gia khác, có thể dễ dàng thực hiện:

Như bạn có thể thấy, điều này làm giảm bất kỳ hàng nào không có trận đấu.

Tham gia một chỉ mục duy nhất vào Multiindex#

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
4

Hướng dẫn python join documentation - tài liệu tham gia python

Bạn có thể tham gia một

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 chỉ số đơn với mức độ đa dạng
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00. Cấp độ sẽ khớp với tên của chỉ mục của khung hình đơn lẻ so với tên cấp độ của khung đa dạng.

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
5

Hướng dẫn python join documentation - tài liệu tham gia python

Điều này tương đương nhưng ít dài dòng hơn và tiết kiệm bộ nhớ / nhanh hơn thế này.

Tham gia với hai đa dạng#

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
6

Điều này được hỗ trợ theo cách hạn chế, với điều kiện là chỉ mục cho đối số bên phải được sử dụng hoàn toàn trong tham gia và là một tập hợp con của các chỉ số trong đối số bên trái, như trong ví dụ này:

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
7

Hướng dẫn python join documentation - tài liệu tham gia python

Nếu điều kiện đó không được thỏa mãn, có thể thực hiện một lần tham gia với hai chỉ số đa chỉ số bằng mã sau.

Hợp nhất trên kết hợp các cột và cấp chỉ mục#

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
8

Hướng dẫn python join documentation - tài liệu tham gia python

Ghi chú

Các DTYPE danh mục phải hoàn toàn giống nhau, có nghĩa là cùng một loại và thuộc tính được đặt hàng. Nếu không, kết quả sẽ ép buộc các danh mục DTYPE.

Ghi chú

Các DTYPE danh mục phải hoàn toàn giống nhau, có nghĩa là cùng một loại và thuộc tính được đặt hàng. Nếu không, kết quả sẽ ép buộc các danh mục DTYPE.

Ghi chú

Các DTYPE danh mục phải hoàn toàn giống nhau, có nghĩa là cùng một loại và thuộc tính được đặt hàng. Nếu không, kết quả sẽ ép buộc các danh mục DTYPE.

Các cột giá trị chồng chéo#

Đối số hợp nhất

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
56 có một danh sách các chuỗi để nối các tên cột chồng chéo trong đầu vào
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00S để định hướng các cột kết quả:

In [8]: df4 = pd.DataFrame(
   ...:     {
   ...:         "B": ["B2", "B3", "B6", "B7"],
   ...:         "D": ["D2", "D3", "D6", "D7"],
   ...:         "F": ["F2", "F3", "F6", "F7"],
   ...:     },
   ...:     index=[2, 3, 6, 7],
   ...: )
   ...: 

In [9]: result = pd.concat([df1, df4], axis=1)
9

Hướng dẫn python join documentation - tài liệu tham gia python

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
0

Hướng dẫn python join documentation - tài liệu tham gia python

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
29 có
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
53 và
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
54 đối số hoạt động tương tự.

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
1

Hướng dẫn python join documentation - tài liệu tham gia python

Tham gia nhiều DataFrames#

Một danh sách hoặc bộ tuple của

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
30 cũng có thể được chuyển đến
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
84 để tham gia cùng nhau trên các chỉ mục của chúng.

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
2

Hướng dẫn python join documentation - tài liệu tham gia python

Hợp nhất các giá trị với nhau trong các cột Data hoặc DataFrame#

Một tình huống khá phổ biến khác là có hai đối tượng có chỉ số tương tự (hoặc được lập chỉ mục tương tự)

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
02 hoặc
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 và muốn các giá trị vá lỗi của bản vá trong một đối tượng từ các giá trị để phù hợp với các chỉ số phù hợp với nhau. Đây là một ví dụ:

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
3

Đối với điều này, hãy sử dụng phương pháp

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
59:

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
4

Hướng dẫn python join documentation - tài liệu tham gia python

Lưu ý rằng phương pháp này chỉ lấy các giá trị từ bên phải

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 nếu chúng bị thiếu ở bên trái
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00. Một phương pháp liên quan,
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
62, thay đổi các giá trị không NA tại chỗ:

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
5

Hướng dẫn python join documentation - tài liệu tham gia python

Thời gian hợp nhất thân thiện#

Hợp nhất dữ liệu đã đặt hàng#

Hàm

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
63 cho phép kết hợp chuỗi thời gian và dữ liệu được đặt hàng khác. Cụ thể, nó có từ khóa
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
64 tùy chọn để điền/nội suy dữ liệu bị thiếu:

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
6

Hợp nhất ASOF#

Một

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
65 tương tự như một tham số bên trái được đặt hàng ngoại trừ việc chúng tôi khớp với khóa gần nhất thay vì các phím bằng nhau. Đối với mỗi hàng trong
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
34
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00, chúng tôi chọn hàng cuối cùng trong
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
35
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 có khóa
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
36 nhỏ hơn phím bên trái. Cả hai khung dữ liệu phải được sắp xếp theo khóa.

Tùy chọn hợp nhất ASOF có thể thực hiện hợp nhất nhóm khôn ngoan. Điều này phù hợp với khóa

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
71 như nhau, ngoài trận đấu gần nhất trên khóa
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
36.

Ví dụ; Chúng tôi có thể có

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
73 và
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
74 và chúng tôi muốn
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
75 hợp nhất chúng.

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
7

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
8

Theo mặc định, chúng tôi đang lấy ASOF của các trích dẫn.

In [10]: result = pd.concat([df1, df4], axis=1, join="inner")
9

Chúng tôi chỉ có ASOF trong

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
76 giữa thời gian báo giá và thời gian giao dịch.

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
0

Chúng tôi chỉ ASOF trong

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
77 giữa thời gian báo giá và thời gian giao dịch và chúng tôi loại trừ các trận đấu chính xác đúng hạn. Lưu ý rằng mặc dù chúng tôi loại trừ các trận đấu chính xác (của các trích dẫn), các trích dẫn trước đó được truyền đến thời điểm đó.do propagate to that point in time.

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
1

So sánh các đối tượng#

Các phương pháp

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
78 và
In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
78 cho phép bạn so sánh hai DataFrame hoặc chuỗi, và tóm tắt sự khác biệt của chúng.

Tính năng này đã được thêm vào trong v1.1.0.V1.1.0.

Ví dụ: bạn có thể muốn so sánh hai

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
00 và xếp chồng sự khác biệt của chúng cạnh nhau.

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
2

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
3

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
4

Theo mặc định, nếu hai giá trị tương ứng bằng nhau, chúng sẽ được hiển thị là

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
81. Hơn nữa, nếu tất cả các giá trị trong toàn bộ hàng / cột, hàng / cột sẽ bị bỏ qua từ kết quả. Sự khác biệt còn lại sẽ được căn chỉnh trên các cột.

Nếu bạn muốn, bạn có thể chọn xếp chồng sự khác biệt trên các hàng.

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
5

Nếu bạn muốn giữ tất cả các hàng và cột gốc, hãy đặt đối số

In [6]: result = pd.concat(frames, keys=["x", "y", "z"])
82 thành
pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
43.

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
6

Bạn cũng có thể giữ tất cả các giá trị ban đầu ngay cả khi chúng bằng nhau.

In [11]: result = pd.concat([df1, df4], axis=1).reindex(df1.index)
7