Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Bạn có thể sử dụng hàm tạo

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
2 với
df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
3 được tạo bởi
df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
4:

import pandas as pd

d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}
df2 = pd.DataFrame(d1)
print (df2)
       teams
0  [SF, NYG]
1  [SF, NYG]
2  [SF, NYG]
3  [SF, NYG]
4  [SF, NYG]
5  [SF, NYG]
6  [SF, NYG]

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG

Và cho một

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
2 mới:

df3 = pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
print (df3)
  team1 team2
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG

Một giải pháp với

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
6 rất chậm:

#7k rows
df2 = pd.concat([df2]*1000).reset_index(drop=True)

In [121]: %timeit df2['teams'].apply(pd.Series)
1.79 s ± 52.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [122]: %timeit pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
1.63 ms ± 54.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

Khi làm việc với Pandas DataFrame, bạn có thể thấy mình trong các tình huống mà bạn có một cột có các giá trị như danh sách mà bạn đã có trong các cột riêng biệt. Trong hướng dẫn này, chúng tôi sẽ xem xét cách phân chia cột DataFrame của Pandas thành nhiều cột với sự trợ giúp của một số ví dụ.

Làm thế nào để tạo nhiều cột từ một cột gấu trúc của danh sách?

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Để chia một cột gấu trúc của danh sách thành nhiều cột, hãy tạo một khung dữ liệu mới bằng cách áp dụng hàm

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
7 cho cột. Sau đây là cú pháp.

import pandas as pd
# assuming 'Col' is the column you want to split
df.DataFrame(df['Col'].to_list(), columns = ['c1', 'c2', 'c3'])

Bạn cũng có thể vượt qua tên của các cột mới do phân chia dưới dạng danh sách.

Hãy cùng xem hành động của nó với sự trợ giúp của một ví dụ. Đầu tiên, hãy để Lôi tạo một khung dữ liệu với một cột có danh sách các giá trị cho mỗi hàng.

import pandas as pd

# create a dataframe
df = pd.DataFrame({
    'Name' : ['a', 'b', 'c'],
    'Values': [[1,2,3], [2,0,1], [3,2,0]]
})

# display the column
df

Output:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Bây giờ, hãy để phân chia cột Giá trị của cột thành nhiều cột, một cho mỗi giá trị trong danh sách.

# new df from the column of lists
split_df = pd.DataFrame(df['Values'].tolist())
# display the resulting df
split_df

Output:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Ở đây, chúng tôi đã vượt qua bất kỳ tên cột nào, do đó tên cột được đưa ra theo mặc định. Hãy để đặt tên cột cụ thể cho mỗi cột mới.

# new df from the column of lists
split_df = pd.DataFrame(df['Values'].tolist(), columns=['v1', 'v2', 'v3'])
# display the resulting df
split_df

Output:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Bạn cũng có thể muốn kết hợp DataFrame kết quả từ việc chia thành DataFrame gốc. Đối với điều này, sử dụng hàm pandas concat ().

# new df from the column of lists
split_df = pd.DataFrame(df['Values'].tolist(), columns=['v1', 'v2', 'v3'])
# concat df and split_df
df = pd.concat([df, split_df], axis=1)
# display df
df

Đầu ra:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Bạn cũng có thể muốn thả cột Giá trị của cột, bây giờ nó đã được chia thành ba cột.

# drop Values
df = df.drop('Values', axis=1)
# display df
df

Output:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Cột phân chia danh sách độ dài thay đổi

Điều gì sẽ xảy ra nếu bạn sử dụng phương thức trên trên một cột có danh sách độ dài thay đổi?

Hãy cùng xem chúng ta.

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
0

Output:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Các giá trị cột của người Viking có danh sách các độ dài khác nhau.

# new df from the column of lists
split_df = pd.DataFrame(df['Values'].tolist())
# display the resulting df
split_df

Output:

Hướng dẫn how do you split a column in a list in python? - làm cách nào để tách một cột trong danh sách trong python?

Nếu các danh sách trong cột có độ dài khác nhau, DataFrame kết quả sẽ có các cột bằng chiều dài của danh sách lớn nhất với NAN ở những nơi mà hàm không tìm thấy giá trị danh sách.

Chức năng của sê -ri Pandas Series ()

Với điều này, chúng tôi đi đến cuối hướng dẫn này. Các ví dụ và kết quả mã được trình bày trong hướng dẫn này đã được triển khai trong A & NBSP; Jupyter Notebook & NBSP; với hạt nhân Python (phiên bản 3.8.3) có Pandas phiên bản 1.0.5


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

  • Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết

Làm cách nào để chia một cột thành một danh sách các giá trị trong Python?

Để chia cột A, chứa danh sách, thành nhiều cột:.
Trước tiên, chúng tôi mở rộng danh sách trong cột A (loạt) theo chiều ngang bằng cách sử dụng áp dụng (pd.series):.
Loại trả lại ở đây là DataFrame ..
Ở đây, Axis = 1 chỉ ra rằng chúng tôi muốn kết hợp hai khung dữ liệu của mình theo chiều ngang ..

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

Làm thế nào để chia một cột theo dấu phân cách trong Python?Vượt qua mở rộng = true để phân chia chuỗi thành các cột riêng biệt.Lưu ý rằng đó là sai theo mặc định.Sử dụng tham số n để vượt qua số lượng phân tách bạn muốn.Pass expand=True to split strings into separate columns. Note that it is False by default. Use the parameter n to pass the number of splits you want.

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

Để phân chia nhiều dữ liệu cột mảng thành pyspark hàng cung cấp một hàm gọi là explode ().Sử dụng Explode, chúng tôi sẽ nhận được một hàng mới cho mỗi phần tử trong mảng.pyspark provides a function called explode(). Using explode, we will get a new row for each element in the array.

Làm cách nào để chia một cột thành các giá trị?

Thử nó!..
Chọn ô hoặc cột chứa văn bản bạn muốn chia ..
Chọn Dữ liệu> Văn bản vào cột ..
Trong văn bản chuyển đổi thành trình hướng dẫn cột, chọn dấu phân đoạn> Tiếp theo ..
Chọn DELIMITERS cho dữ liệu của bạn.....
Chọn Tiếp theo ..
Chọn điểm đến trong bảng tính của bạn, nơi bạn muốn dữ liệu phân chia xuất hiện ..