Cách ghi dữ liệu vào excel trong Python

Tôi cần ghi một số dữ liệu từ chương trình của mình vào bảng tính Excel. Tôi đã tìm kiếm trực tuyến và dường như có nhiều gói có sẵn (xlwt, XlsXcessive, openpyxl). Những người khác đề nghị viết thư cho một. csv (chưa bao giờ sử dụng CSV và không thực sự hiểu nó là gì)

Chương trình rất đơn giản. Tôi có hai danh sách (float) và ba biến (chuỗi). Tôi không biết độ dài của hai danh sách và có thể chúng sẽ không bằng nhau

Tôi muốn bố cục như trong hình bên dưới

Cột màu hồng sẽ có các giá trị của danh sách đầu tiên và cột màu xanh lá cây sẽ có các giá trị của danh sách thứ hai

Vì vậy, cách tốt nhất để làm điều này là gì?

Tôi đang chạy Windows 7 nhưng tôi không nhất thiết phải cài đặt Office trên các máy tính đang chạy chương trình này

import xlwt

x=1
y=2
z=3

list1=[2.34,4.346,4.234]

book = xlwt.Workbook(encoding="utf-8")

sheet1 = book.add_sheet("Sheet 1")

sheet1.write(0, 0, "Display")
sheet1.write(1, 0, "Dominance")
sheet1.write(2, 0, "Test")

sheet1.write(0, 1, x)
sheet1.write(1, 1, y)
sheet1.write(2, 1, z)

sheet1.write(4, 0, "Stimulus Time")
sheet1.write(4, 1, "Reaction Time")

i=4

for n in list1:
    i = i+1
    sheet1.write(i, 0, n)

book.save("trial.xls")

Tôi đã viết điều này bằng cách sử dụng tất cả các đề xuất của bạn. Nó hoàn thành công việc nhưng nó có thể được cải thiện một chút

Làm cách nào để định dạng các ô được tạo trong vòng lặp for (giá trị ____19_______) là khoa học hoặc số?

Tôi không muốn cắt bớt các giá trị. Các giá trị thực được sử dụng trong chương trình sẽ có khoảng 10 chữ số sau dấu thập phân

Hãy tạo một DataFrame gấu trúc từ danh sách và khám phá hàm usingto_excel() bằng cách sử dụng nhiều tham số


import pandas as pd
import numpy as np

# Create multiple lists
technologies =  ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']

# Create DataFrame from multiple lists
df = pd.DataFrame(list(zip(technologies,fee,duration,discount)), columns=columns)
print(df)

# Outputs
#  Courses    Fee Duration  Discount
#0   Spark  25000  5o Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800

1. pandas DataFrame sang Excel

Sử dụng hàm to_excel() để viết hoặc xuất DataFrame của gấu trúc sang bảng excel với phần mở rộng xlsx. Sử dụng điều này, bạn có thể ghi các tệp excel vào hệ thống tệp cục bộ, S3 e. t. c. Không chỉ định bất kỳ tham số nào mà nó mặc định ghi vào một trang tính

to_excel() nhận một số tham số tùy chọn có thể được sử dụng bỏ qua cột, bỏ qua hàng, không ghi chỉ mục, đặt tên cột, định dạng, v.v.


# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')

Điều này tạo ra một tệp excel với nội dung như dưới đây. Theo mặc định, Nó xuất tên cột, chỉ mục và dữ liệu sang một trang tính có tên 'Sheet1'.

Cách ghi dữ liệu vào excel trong Python

Bạn có thể thay đổi tên của trang tính từ Trang tính 1 thành tên nào đó có ý nghĩa đối với dữ liệu của bạn bằng cách sử dụng tham số sheet_name. Ví dụ dưới đây xuất nó sang trang tính có tên 'Technologies'


# Write DataFrame to Excel file with sheet name
df.to_excel('Courses.xlsx', sheet_name='Technologies')

2. Ghi vào nhiều trang tính

Lớp ExcelWriter cho phép bạn viết hoặc xuất nhiều DataFrames gấu trúc sang các trang tính riêng biệt. Đầu tiên, bạn cần tạo một đối tượng cho ExcelWriter

Ví dụ dưới đây ghi dữ liệu từ đối tượng


# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
0 vào trang tính có tên Technologies và đối tượng

# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
2 vào trang tính có tên

# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
3


# Write to Multiple Sheets
with pd.ExcelWriter('Courses.xlsx') as writer:
    df.to_excel(writer, sheet_name='Technologies')
    df2.to_excel(writer, sheet_name='Schedule')

3. Nối vào tệp Excel hiện có

ExcelWriter có thể được sử dụng để nối thêm DataFrame vào tệp excel. Sử dụng tham số


# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
4 với giá trị

# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
5 để nối thêm. Đoạn mã dưới đây mở một tệp hiện có và thêm dữ liệu từ DataFrame vào trang tính đã chỉ định


# Append DataFrame to existing excel file
with pd.ExcelWriter('Courses.xlsx',mode='a') as writer:  
    df.to_excel(writer, sheet_name='Technologies')

4. Lưu các cột đã chọn

sử dụng thông số


# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
6 để lưu các cột đã chọn từ DataFrame sang tệp excel. Ví dụ dưới đây chỉ lưu các cột

# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
7,

# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
8 vào file excel


# Save Selected Columns to Excel File
df.to_excel('Courses.xlsx', columns = ['Fee','Duration'])

Sử dụng tham số


# Write DataFrame to Excel file
df.to_excel('Courses.xlsx')
9 với danh sách các giá trị nếu bạn muốn viết với các tên cột khác nhau

5. Bỏ qua chỉ mục

Để bỏ qua Chỉ mục khi viết, hãy sử dụng


# Write DataFrame to Excel file with sheet name
df.to_excel('Courses.xlsx', sheet_name='Technologies')
0 param. Theo mặc định, nó được đặt thành

# Write DataFrame to Excel file with sheet name
df.to_excel('Courses.xlsx', sheet_name='Technologies')
1 nghĩa là ghi Chỉ mục số vào trang tính excel


# Skip Index
df.to_excel('Courses.xlsx', index = False)

Phần kết luận

Trong bài viết này, bạn đã học cách ghi DataFrame của pandas vào tệp excel bằng cách sử dụng to_excel(). Cũng khám phá cách ghi vào trang tính cụ thể, nhiều trang tính và nối vào tệp excel hiện có