Thêm cột vào csv python

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

  1. Cột mới dựa trên các cột khác
  2. 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]
  3. Chèn một cột dựa trên các giá trị trong một DataFrame khác
  4. Thêm cột mới vào chỉ mục col
  5. Tạo một chuỗi từ một cột
  6. 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-059462

2. 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-32

Chú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ật

Nế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-32SYD

Hoặ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

________số 8_______

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 pd
0]

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 pd
1 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 pd
2 đượ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 pd
3

Đầu ra [đoạn mã] với

import pandas as pd
4

Ví dụ này đặt

import pandas as pd
5 để 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 pd
6, 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 pd
7 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 pd
1 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 pd
2 đượ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 pd
1 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 pd
2 đượ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 pd
1 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

Chủ Đề