Trong hướng dẫn gần đây, chúng tôi tìm hiểu cách thêm hàng vào DataFrames hiện có trong Pandas. Hôm nay, chúng ta sẽ làm việc với các cột DF
Trong bài đăng này, chúng tôi muốn nhấp đúp chuột vào một số trường hợp sử dụng cơ bản khi sắp xếp dữ liệu dạng bảng với Pandas
Thêm cột vào Python DataFrames
- Cột mới dựa trên các cột khác
- Thêm các cột có giá trị mặc định/hằng số/cùng giá trị [có thể là cột có số 0]
- Chèn một cột dựa trên các giá trị trong một DataFrame khác
- Thêm cột mới vào chỉ mục col
- Tạo một chuỗi từ một cột
- Xuất một cột sang tệp csv
Tạo dữ liệu
# Import libraries
import pandas as pd
import numpy as np
np.random.seed[100]
# Create data frame, with specific column names
dates =pd.date_range[start="20210101",periods=5]
scores = pd.DataFrame[data = np.random.randint[60,100, size = [5,2]], columns = ['score_1', 'score_2'], index =dates ]
display[scores]
Đây là DataFrame của chúng tôi
score_1score_22021-01-0168842021-01-0263992021-01-0383752021-01-0470902021-01-0594622. Cột dựa trên các giá trị cột khác
Ví dụ đơn giản hiển thị một cột được tính toán
# based on other columns
scores['dif'] = scores['score_2']-scores['score_1']
Đây là đầu ra của chúng tôi
score_1score_2dif2021-01-016884162021-01-026399362021-01-038375-82021-01-047090202021-01-059462-32Chúng ta cũng có thể sử dụng hàm lambda
scores['dif2'] = scores.apply [lambda x:scores['score_2']-scores['score_1']]
3. Cột có giá trị mặc định
Giả sử chúng ta muốn chỉ định tất cả sinh viên của mình vào khoa Kỹ thuật
# with constant value
scores['area'] = 'Engineering'
scores
điểm_1điểm_2difarea2021-01-01688416Kỹ thuật2021-01-02639936Kỹ thuật2021-01-038375-8Kỹ thuật2021-01-04709020Kỹ thuật2021-01-059462-32Kỹ thuậtNếu chúng ta muốn chèn một cột số không
scores['zeros'] = 0
4. Cột có giá trị từ DataFrame khác
Hãy bắt đầu bằng cách xác định DataFrame mới từ danh sách
# from other dataframe
cities = pd.DataFrame[['NYC', 'FRA', 'SFO', 'MUC', 'SYD'], columns=['city'], index=dates]
Sau đó chúng ta có thể gán như sau
scores['city'] = cities['city']
scores
điểm_1điểm_2difcity2021-01-01688416NYC2021-01-02639936FRA2021-01-038375-8SFO2021-01-04709020MUC2021-01-059462-32SYDHoặc cách khác sử dụng pd. concat[]
# recreating our original DF
scores = pd.DataFrame[data = np.random.randint[60,100, size = [5,2]], columns = ['score_1', 'score_2'], index =dates ]
scores_cities = pd.concat[[scores, cities], axis=1]
Ghi chú. phương pháp trên sẽ hoạt động tốt nếu cả hai DataFrames có chỉ mục giống nhau. Nếu đó không phải là trường hợp bạn có thể muốn sử dụng
Chủ sở hữu của Học viện Finxter đã yêu cầu bạn thêm một cột mới vào tệp CSV hiện tại của họ có tên là Total_Chrgs
💬 câu hỏi. Làm cách nào để chúng tôi viết mã Python để thêm một cột mới vào tệp CSV?
Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau
- Phương pháp 1. Thêm một cột có giá trị mặc định
- Phương pháp 2. Thêm một cột có giá trị được tính toán
- Phương pháp 3. Thêm một cột bằng Lambda với các giá trị được tính toán
- Phương pháp 4. Thêm một cột bằng cách sử dụng
assign[]
với các giá trị được gán
Sự chuẩn bị
Trước khi bất kỳ thao tác dữ liệu nào có thể xảy ra, một [1] thư viện mới sẽ yêu cầu cài đặt
- Thư viện Pandas cho phép truy cập vào/từ DataFrame
Để cài đặt thư viện này, hãy điều hướng đến một thiết bị đầu cuối IDE. Tại dấu nhắc lệnh [$
], hãy thực thi mã bên dưới. Đối với thiết bị đầu cuối được sử dụng trong ví dụ này, dấu nhắc lệnh là ký hiệu đô la [$
]. Lời nhắc thiết bị đầu cuối của bạn có thể khác
Nhấn phím trên bàn phím để bắt đầu quá trình cài đặt
Nếu quá trình cài đặt thành công, một thông báo sẽ hiển thị trong thiết bị đầu cuối cho biết điều tương tự
Vui lòng xem hướng dẫn cài đặt PyCharm để biết thư viện cần thiết
- Cách cài đặt gấu trúc trên PyCharm
Thêm đoạn mã sau vào đầu mỗi đoạn mã. Đoạn mã này sẽ cho phép mã trong bài viết này chạy không có lỗi
import pandas as pd
💡 Lưu ý. Để làm theo, nhấp vào đây để tải xuống tệp CSV Finxter và di chuyển tệp này vào thư mục làm việc hiện tại
Phương pháp 1. Thêm một cột có giá trị mặc định
Trong ví dụ này, một cột mới được thêm vào và được gán một giá trị mặc định duy nhất là 0 [
import pandas as pd0]
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = 0 df.to_csv['finxter1.csv', index=False]
Mã này đọc trong tệp
import pandas as pd1 hiện có, hợp lý hóa nó thành một vài cột cho ngắn gọn và lưu nó vào DataFrame
Cột Khung dữ liệu mới
import pandas as pd2 được thêm vào và được gán giá trị mặc định là 0 cho mỗi mục nhập. Kết quả lưu vào
import pandas as pd3
Đầu ra [đoạn mã] với
import pandas as pd4
Ví dụ này đặt
import pandas as pd5 để bỏ qua các giá trị chỉ mục khi ghi vào tệp CSV. Nếu điều này được đặt thành
import pandas as pd6, tệp sẽ hiển thị với cột chỉ mục như hình bên dưới
Đầu ra [đoạn mã] với chỉ mục=Sai
Để lại cái này là
import pandas as pd7 sẽ cho chúng tôi đầu ra mà chúng tôi đang tìm kiếm. không có cột chỉ mục bổ sung
💡 Lưu ý. Đối với mục đích thử nghiệm, chúng tôi có thể đề xuất ghi nội dung vào tệp CSV mới và không ghi đè lên tệp gốc
Phương pháp 2. Thêm một cột có giá trị được tính toán
Một cột mới được thêm vào trong ví dụ này và một phép tính tập hợp được thực hiện và gán cho từng mục nhập
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = round[df['Recurring'] * [df['Taxes']/100] + df['Recurring'], 2] df.to_csv['finxter2.csv', index=False]
Mã này đọc trong tệp
import pandas as pd1 hiện có, hợp lý hóa nó thành một vài cột cho ngắn gọn và lưu nó vào DataFrame
Một cột mới
import pandas as pd2 được thêm vào và các phép tính được thực hiện trên mỗi mục nhập. Kết quả được làm tròn đến hai [2] chữ số thập phân và được lưu vào _______11_______0
Đầu ra [đoạn trích]
Phương pháp 3. Thêm một cột bằng Lambda với các giá trị được tính toán
Trong ví dụ này, một cột mới được thêm vào và một phép tính tập hợp được thực hiện và gán cho từng mục nhập bằng cách sử dụng Lambda
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = df.apply[lambda row: round[row['Recurring'] * [row['Taxes']/100] + row['Recurring'], 2], axis=1] df.to_csv['finxter3.csv', index=False]
💡Một Finxter yêu thích
Mã này đọc trong tệp
import pandas as pd1 hiện có, hợp lý hóa nó thành một vài cột cho ngắn gọn và lưu nó vào DataFrame
Một cột mới
import pandas as pd2 được thêm vào và Lambda thực hiện các phép tính trên mỗi mục nhập, làm tròn đến hai [2] chữ số thập phân. Đầu ra lưu vào
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = 0 df.to_csv['finxter1.csv', index=False]3
Hãy chơi Finxter - Hàm Lambda trong Python
Xem video này trên YouTube
Đầu ra [đoạn trích]
Phương pháp 4. Thêm một cột bằng cách sử dụng gán [] với các giá trị được gán
Trong ví dụ này, một cột mới được thêm vào, sắp xếp và assign[]
được sử dụng để đặt giá trị mới cho bốn [4] bản ghi hàng đầu
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df.sort_values[by=['Recurring'], ascending=False, inplace=True] df = df.head[4] df = df.assign[Total_Chrgs=[12.98, 12.98, 11.98, 10.98]] df.to_csv['finxter4.csv', index=False]
Mã này đọc trong tệp
import pandas as pd1 hiện có, hợp lý hóa nó thành một vài cột cho ngắn gọn và lưu nó vào DataFrame
Sau đó, DataFrame được sắp xếp theo thứ tự giảm dần dựa trên khoản phí
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = 0 df.to_csv['finxter1.csv', index=False]6 và bốn [4] hàng trên cùng trả về [
df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = 0 df.to_csv['finxter1.csv', index=False]7]. Các hàng này được gán các giá trị hiển thị trong tham số Danh sách
assign[]
. Đầu ra lưu vào df = pd.read_csv['finxter.csv', usecols=['FID', 'First_Name', 'Last_Name', 'Recurring', 'Taxes']] df['Total_Chrgs'] = 0 df.to_csv['finxter1.csv', index=False]9
Đầu ra [đoạn trích]
Tóm lược
Bốn [4] phương pháp thêm Cột DataFrame này sẽ cung cấp cho bạn đủ thông tin để chọn phương pháp tốt nhất cho các yêu cầu viết mã của bạn