Hướng dẫn how do i split a column into multiple columns in python? - làm cách nào để chia một cột thành nhiều cột trong python?

TL; Phiên bản DR:

Đối với trường hợp đơn giản của:

  • Tôi có một cột văn bản có dấu phân cách và tôi muốn hai cột

Giải pháp đơn giản nhất là:

df[['A', 'B']] = df['AB'].str.split(' ', 1, expand=True)

Bạn phải sử dụng

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
2 nếu các chuỗi của bạn có số lượng phân tách không đồng nhất và bạn muốn
>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
3 để thay thế các giá trị bị thiếu.

Lưu ý làm thế nào, trong cả hai trường hợp, phương pháp

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
4 là không cần thiết. Không phải là
>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
5.

Chi tiết:

Giải pháp của Andy Hayden là tuyệt vời nhất trong việc thể hiện sức mạnh của phương pháp

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
6.

Nhưng đối với một sự phân chia đơn giản trên một phân tách đã biết (như, tách bằng dấu gạch ngang hoặc tách bằng khoảng trắng), phương pháp

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
7 là đủ1. Nó hoạt động trên một cột (chuỗi) của chuỗi và trả về một cột (loạt) danh sách:

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]

1: Nếu bạn không chắc hai tham số đầu tiên của

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
7 làm, tôi khuyên bạn nên sử dụng các tài liệu cho phiên bản Python đơn giản của phương thức.

Nhưng làm thế nào để bạn đi từ:

  • Một cột chứa danh sách hai phần tử

to:

  • Hai cột, mỗi cột chứa phần tử tương ứng của danh sách?

Chà, chúng ta cần xem xét kỹ hơn thuộc tính

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
9 của một cột.

Đó là một đối tượng ma thuật được sử dụng để thu thập các phương thức xử lý từng phần tử trong một cột dưới dạng chuỗi, sau đó áp dụng phương thức tương ứng trong mỗi phần tử hiệu quả nhất có thể:

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c

Nhưng nó cũng có giao diện "lập chỉ mục" để lấy từng phần tử của một chuỗi theo chỉ mục của nó:

>>> df['AB'].str[0]

0    A
1    A
Name: AB, dtype: object

>>> df['AB'].str[1]

0    1
1    2
Name: AB, dtype: object

Tất nhiên, giao diện lập chỉ mục này của

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
9 không thực sự quan tâm nếu mỗi phần tử mà nó lập chỉ mục thực sự là một chuỗi, miễn là nó có thể được lập chỉ mục, vì vậy:

>>> df['AB'].str.split('-', 1).str[0]

0    A1
1    A2
Name: AB, dtype: object

>>> df['AB'].str.split('-', 1).str[1]

0    B1
1    B2
Name: AB, dtype: object

Sau đó, đó là một vấn đề đơn giản là tận dụng lợi thế của python để giải nén các vòng lặp để làm

>>> df['A'], df['B'] = df['AB'].str.split('-', 1).str
>>> df

      AB  AB_split   A   B
0  A1-B1  [A1, B1]  A1  B1
1  A2-B2  [A2, B2]  A2  B2

Tất nhiên, việc loại bỏ DataFrame từ việc tách một cột chuỗi rất hữu ích đến nỗi phương thức

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
7 có thể làm điều đó cho bạn với tham số
>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
2:

>>> df['AB'].str.split('-', 1, expand=True)

    0   1
0  A1  B1
1  A2  B2

Vì vậy, một cách khác để hoàn thành những gì chúng tôi muốn là làm:

>>> df = df[['AB']]
>>> df

      AB
0  A1-B1
1  A2-B2

>>> df.join(df['AB'].str.split('-', 1, expand=True).rename(columns={0:'A', 1:'B'}))

      AB   A   B
0  A1-B1  A1  B1
1  A2-B2  A2  B2

Phiên bản

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
2, mặc dù dài hơn, có một lợi thế khác biệt so với phương pháp giải nén Tuple. Tuple giải nén không đối phó tốt với các phân chia có độ dài khác nhau:

>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2', 'A3-B3-C3']})
>>> df
         AB
0     A1-B1
1     A2-B2
2  A3-B3-C3
>>> df['A'], df['B'], df['C'] = df['AB'].str.split('-')
Traceback (most recent call last):
  [...]    
ValueError: Length of values does not match length of index
>>> 

Nhưng

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
2 xử lý nó một cách độc đáo bằng cách đặt
>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
3 vào các cột mà không có đủ "chia tách":

>>> df.join(
...     df['AB'].str.split('-', expand=True).rename(
...         columns={0:'A', 1:'B', 2:'C'}
...     )
... )
         AB   A   B     C
0     A1-B1  A1  B1  None
1     A2-B2  A2  B2  None
2  A3-B3-C3  A3  B3    C3

Hướng dẫn how do i split a column into multiple columns in python? - làm cách nào để chia một cột thành nhiều cột trong python?

Trong bài viết này, chúng tôi sẽ thảo luận về cách chia cột DataFrame thành hai cột trong Python.

Mục lục

  • Tổng quan Pandas DataFrame
  • Chia cột DataFrame thành hai cột bằng series.str.split ()
  • Chia cột DataFrame thành hai cột bằng phương thức Ứng dụng ()
  • Bản tóm tắt

Tổng quan Pandas DataFrame

Chia cột DataFrame thành hai cột bằng series.str.split ()

Chia cột DataFrame thành hai cột bằng phương thức Ứng dụng ()

Bản tóm tắt

Trong gấu trúc, DataFrame chứa ba hàng, cột và dữ liệu. Nó là một đối tượng hai chiều chứa các cột và hàng. Trong đó các cột đại diện cho nội dung và hàng đại diện cho chỉ mục. DataFrame giống như một cấu trúc dữ liệu bảng.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
0

Chuỗi giá trị cột trong DataFramestudent_address column to two different columns “city” and “state” like,

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
1

Trong gấu trúc, một cột DataFrame có thể chứa các giá trị chuỗi được phân định. Nó có nghĩa là, nhiều giá trị trong một cột duy nhất được phân tách bằng dấu gạch ngang, khoảng trắng hoặc dấu phẩy. Ví dụ,

Chia cột DataFrame thành hai cột bằng series.str.split ()

Chia cột DataFrame thành hai cột bằng phương thức Ứng dụng ()

Bản tóm tắt

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
2
  • Trong gấu trúc, DataFrame chứa ba hàng, cột và dữ liệu. Nó là một đối tượng hai chiều chứa các cột và hàng. Trong đó các cột đại diện cho nội dung và hàng đại diện cho chỉ mục. DataFrame giống như một cấu trúc dữ liệu bảng. string type; It is a regular expression or a delimiter symbol to split on. By default it is whitespace. It is optional.
  • Chuỗi giá trị cột trong DataFrame int type; It specifies the number of splits, default is -1.
  • Trong gấu trúc, một cột DataFrame có thể chứa các giá trị chuỗi được phân định. Nó có nghĩa là, nhiều giá trị trong một cột duy nhất được phân tách bằng dấu gạch ngang, khoảng trắng hoặc dấu phẩy. Ví dụ,: bool type; default is False
    • Quảng cáo
    • Ở đây, chúng tôi có yêu cầu chia một cột duy nhất thành hai cột khác nhau. Ví dụ: trong DataFrame ở trên chia cột Student_Address thành hai cột khác nhau City City City và State State, giống như,

Có nhiều cách khác nhau để làm điều này. Hãy để chúng tôi thảo luận từng người một.student_address column to two different columns “city” and “state”.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
3

Trong gấu trúc, các cột DataFrame được gọi là chuỗi và để chuyển đổi cột thành dữ liệu chuỗi chúng ta có thể sử dụng hàm series.str (). Hàm sê -ri.Str.Split () được sử dụng để chia các giá trị cột đơn thành nhiều cột dựa trên một dấu phân cách hoặc dấu phân cách được chỉ định. Hàm sê -ri.Str.Split () tương tự như phương thức phân chia chuỗi python, nhưng phương thức split () hoạt động trên tất cả các cột DataFrame, trong khi phương thức sê -ri.Str.Split () chỉ hoạt động trên một cột được chỉ định.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
4

Phương thức Syntax of Series.Str.Split ()student_address column values into the city and state columns. The delimiter ‘‘ underscore is specified between both the values, so both values are separated by ‘‘. We passed ‘_’ as the first argument in the Series. str.split() method.

Pat: Loại chuỗi; Đó là một biểu thức chính quy hoặc một biểu tượng phân cách để phân chia. Theo mặc định, nó là khoảng trắng. Nó là tùy chọn.

N: Loại int; Nó chỉ định số lượng phân tách, mặc định là -1.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
5

Trong gấu trúc, các cột DataFrame được gọi là chuỗi và để chuyển đổi cột thành dữ liệu chuỗi chúng ta có thể sử dụng hàm series.str (). Hàm sê -ri.Str.Split () được sử dụng để chia các giá trị cột đơn thành nhiều cột dựa trên một dấu phân cách hoặc dấu phân cách được chỉ định. Hàm sê -ri.Str.Split () tương tự như phương thức phân chia chuỗi python, nhưng phương thức split () hoạt động trên tất cả các cột DataFrame, trong khi phương thức sê -ri.Str.Split () chỉ hoạt động trên một cột được chỉ định.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
6

Phương thức Syntax of Series.Str.Split ()student_name into two columns Name and Surname, and column student_address into columns City and State.

Chia cột DataFrame thành hai cột bằng phương thức Ứng dụng ()

Bản tóm tắt

Trong gấu trúc, DataFrame chứa ba hàng, cột và dữ liệu. Nó là một đối tượng hai chiều chứa các cột và hàng. Trong đó các cột đại diện cho nội dung và hàng đại diện cho chỉ mục. DataFrame giống như một cấu trúc dữ liệu bảng.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
7
  • Parameters:
    • Chuỗi giá trị cột trong DataFrame
    • Trong gấu trúc, một cột DataFrame có thể chứa các giá trị chuỗi được phân định. Nó có nghĩa là, nhiều giá trị trong một cột duy nhất được phân tách bằng dấu gạch ngang, khoảng trắng hoặc dấu phẩy. Ví dụ,
    • Quảng cáo
    • Ở đây, chúng tôi có yêu cầu chia một cột duy nhất thành hai cột khác nhau. Ví dụ: trong DataFrame ở trên chia cột Student_Address thành hai cột khác nhau City City City và State State, giống như,
    • Có nhiều cách khác nhau để làm điều này. Hãy để chúng tôi thảo luận từng người một.
    • Trong gấu trúc, các cột DataFrame được gọi là chuỗi và để chuyển đổi cột thành dữ liệu chuỗi chúng ta có thể sử dụng hàm series.str (). Hàm sê -ri.Str.Split () được sử dụng để chia các giá trị cột đơn thành nhiều cột dựa trên một dấu phân cách hoặc dấu phân cách được chỉ định. Hàm sê -ri.Str.Split () tương tự như phương thức phân chia chuỗi python, nhưng phương thức split () hoạt động trên tất cả các cột DataFrame, trong khi phương thức sê -ri.Str.Split () chỉ hoạt động trên một cột được chỉ định.

Phương thức Syntax of Series.Str.Split ()

Pat: Loại chuỗi; Đó là một biểu thức chính quy hoặc một biểu tượng phân cách để phân chia. Theo mặc định, nó là khoảng trắng. Nó là tùy chọn.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
8

Trong gấu trúc, các cột DataFrame được gọi là chuỗi và để chuyển đổi cột thành dữ liệu chuỗi chúng ta có thể sử dụng hàm series.str (). Hàm sê -ri.Str.Split () được sử dụng để chia các giá trị cột đơn thành nhiều cột dựa trên một dấu phân cách hoặc dấu phân cách được chỉ định. Hàm sê -ri.Str.Split () tương tự như phương thức phân chia chuỗi python, nhưng phương thức split () hoạt động trên tất cả các cột DataFrame, trong khi phương thức sê -ri.Str.Split () chỉ hoạt động trên một cột được chỉ định.

>>> import pandas as pd
>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})
>>> df

      AB
0  A1-B1
1  A2-B2
>>> df['AB_split'] = df['AB'].str.split('-')
>>> df

      AB  AB_split
0  A1-B1  [A1, B1]
1  A2-B2  [A2, B2]
9

Phương thức Syntax of Series.Str.Split ()student_address into two columns city and state. For that, we applied a lambda function on all values of column student_address. This lambda function broke each value in that column to two different values i.e. City and State. Then we assigned those values to two new columns.

Ví dụ 2:

Ví dụ về phương thức dataFrame.apply () với dấu phẩy như một dấu phân cách, để chia hai giá trị cột khác nhau thành bốn cột mới.

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
0

Đầu ra

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})
>>> upper_lower_df

   U
0  A
1  B
2  C
>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()
>>> upper_lower_df

   U  L
0  A  a
1  B  b
2  C  c
1

Trong tập lệnh trên, chúng tôi đã áp dụng phương thức pandas.dataFrame.apply () để chia hai cột Student_name và student_address thành bốn cột mới, tức là student_name thành tên và họ, và student_address vào thành phố và tiểu bang.student_name and student_address into four new columns i.e. student_name into Name and Surname, and student_address into City and State.

Bản tóm tắt

Trong bài viết, chúng tôi đã thảo luận về cột chuỗi trong DataFrame là gì? Chúng tôi đã liệt kê ra các cách khác nhau để chia cột chuỗi thành hai cột và cũng giải thích từng phương pháp với các ví dụ thực tế.

Làm cách nào để chia một cột thành nhiều cột trong Python?

Chúng ta có thể sử dụng chức năng Pandas Series.Str.Split () để phá vỡ các chuỗi trong nhiều cột xung quanh một dấu phân cách hoặc dấu phân cách nhất định.Nó tương tự như phương thức phân chia chuỗi python () nhưng áp dụng cho toàn bộ cột DataFrame.use the pandas Series. str. split() function to break up strings in multiple columns around a given separator or delimiter. It's similar to the Python string split() method but applies to the entire Dataframe column.

Làm cách nào để chia một cột trong một khung dữ liệu thành nhiều cột?

Sử dụng dấu gạch dưới làm dấu phân cách để chia cột thành hai cột.# Thêm hai cột mới vào DataFrame hiện có.# Chia tách được thực hiện trên cơ sở gạch dưới.. # Adding two new columns to the existing dataframe. # splitting is done on the basis of underscore.

Làm thế nào để bạn chia một cột cho một cột khác trong Python?

Làm thế nào để bạn chia một cột cho người khác trong Python?Phương pháp thứ hai để chia hai cột là sử dụng phương thức div ().Nó chia các cột phần tử.Nó chấp nhận một giá trị vô hướng, chuỗi hoặc dataFrame như một đối số để chia với trục.using the div() method. It divides the columns elementwise. It accepts a scalar value, series, or dataframe as an argument for dividing with the axis.

Làm thế nào để bạn chia một cột thành hai trong Python?

thuộc tính str của một cột.df ['a'], df ['b'] = df ['ab'].str.chia ('', 1).